SORU
5 Ocak 2012, PERŞEMBE


Python yerleşik bir kimlik işlevi var mı?

Hiçbir şey yapmayan bir fonksiyonu işaret etmek istiyorum:

def identity(*args)
    return args

kullanın benim durumumda böyle bir şey

try:
    gettext.find(...)
    ...
    _ = gettext.gettext
else:
    _ = identity

Tabii ki, identity yukarıda tanımlanan kullanabilirim, ama bir yerleşik kesinlikle daha hızlı (ve böcekler benim kendi tarafından sunulan önlemek) çalışır.

Görünüşe göre, map filter kimlik None kullanın, ama bu onların uygulamaları için özeldir.

>>> _=None
>>> _("hello")
Traceback (most recent call last):
  File "<stdin>", line 1, in <module>
TypeError: 'NoneType' object is not callable

CEVAP
5 Ocak 2012, PERŞEMBE


Biraz daha araştırma yaparak, bir özelliği Raymond Hettinger said there won't be issue 1673203 Ve istendi hiçbiri değildir

İnsanlar kendi önemsiz yazmak için daha iyi bir geçiş geçmek ve imza ve zaman maliyeti hakkında düşünüyorum.

Bunu yapmanın daha iyi bir yolu aslında (lambda işlevi adlandırma önler)

_ = lambda *args: args
  • avantajı: parametreler . herhangi bir sayı alır
  • dezavantajı: sonuç parametrelerin kutulu bir versiyonu

YA

_ = lambda x: x
  • avantajı: parametre türünü değiştirmez
  • alır tam olarak 1 konumsal parametre

Bunu Paylaş:
  • Google+
  • E-Posta
Etiketler:

YORUMLAR

SPONSOR VİDEO

Rastgele Yazarlar

  • Rugiagialia

    Rugiagialia

    1 Ocak 2008
  • Sam Kear

    Sam Kear

    14 Temmuz 2007
  • sk8ingis4me

    sk8ingis4me

    16 Mart 2006