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

  • 趣味そうこ♪

    趣味そう

    3 Mart 2010
  • Michael Neal

    Michael Neal

    2 Mayıs 2009
  • midomansour

    midomansour

    19 EYLÜL 2009