SORU
30 EKİM 2008, PERŞEMBE


Nasıl bir işlev adı için Python ile bir dize olarak?

Python, nasıl işlevi çağırmadan string olarak işlev adı alabilirim?

def my_function():
    pass

print get_function_name_as_string(my_function) # my_function is not in quotes

çıkış "my_function".

Bu mevcut python? Python get_function_name_as_string yazmayı değilse, bir fikriniz var mı?

CEVAP
1 Kasım 2008, CUMARTESİ


my_function.__name__

__name__ kullanarak düzgün geçerli olarak tercih edilen yöntem. func_name, aksine yerleşik fonksiyonları da çalışır:

>>> import time
>>> time.time.func_name
Traceback (most recent call last):
  File "<stdin>", line 1, in ?
AttributeError: 'builtin_function_or_method' object has no attribute 'func_name'
>>> time.time.__name__ 
'time'

Ayrıca belirtmek çift bu özel bir niteliktir okuyucuya altını çiziyor. Bir bonus olarak, dersleri ve modülleri __name__ niteliği de var, sadece bir özel isim hatırlıyorum.

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

YORUMLAR

SPONSOR VİDEO

Rastgele Yazarlar

  • fireflame65

    fireflame65

    27 Mart 2007
  • Jason Rosolowski

    Jason Rosolo

    25 EKİM 2006
  • mist64

    mist64

    30 Mayıs 2006