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

  • CareyHolzman

    CareyHolzman

    24 Ocak 2008
  • kourtneyannmakeup

    kourtneyannm

    19 ŞUBAT 2012
  • SuicideSheeep

    SuicideSheee

    8 Ocak 2012