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

  • Britec09

    Britec09

    4 Mart 2009
  • TheDroidDemos

    TheDroidDemo

    15 ŞUBAT 2011
  • FF Radioo

    FF Radioo

    14 ŞUBAT 2007