Bu, "applejuice" dizgisi olarak sonuçlanmalıdır.İşlev adını, bu işlevin içinden Python'da bir dize olarak nasıl yazdırılır
cevap
Bu aynı zamanda çalışır:
import sys
def applejuice(q):
func_name = sys._getframe().f_code.co_name
print func_name
Sorununuzun ne olduğunu açıklamanız gerekir. Sorunuzun cevabı Çünkü:
print "applejuice"
belki de şu anlama gelir: def func (anothah_func): print anothah_func'nin adı – wilhelmtell
Bu kesinlikle mümkündür. Sorunun ne olduğunu söyleyip söylemediğini göreceğiz. –
def applejuice(**args):
print "Running the function 'applejuice'"
pass
veya kullanım: Ayrıca
myfunc.__name__
>>> print applejuice.__name__
'applejuice'
, öldürürsün yüzden, bu hata ayıklama için kullanılan varsayalım how-to-get-the-function-name-as-string-in-python
'myfunc .__ name__' için daha fazlası – philshem
import traceback
def applejuice(q):
stack = traceback.extract_stack()
(filename, line, procname, text) = stack[-1]
print procname
bkz traceback
module tarafından sunulan diğer prosedürlere bakmak istiyorum. Onlar vb
tüm çağrı yığını, istisna izleri, başka yolu yazdırmak izin vereceğim
import inspect
def applejuice(q):
print inspect.getframeinfo(inspect.currentframe())[2]
def foo():
# a func can just make a call to itself and fetch the name
funcName = foo.__name__
# print it
print 'Internal: {0}'.format(funcName)
# return it
return funcName
# you can fetch the name externally
fooName = foo.__name__
print 'The name of {0} as fetched: {0}'.format(fooName)
# print what name foo returned in this example
whatIsTheName = foo()
print 'The name foo returned is: {0}'.format(whatIsTheName)
Bu site bana iyi bir açıklama verdi işlev adını döndüren sys._getframe.f_code.co_name'in nasıl çalıştığı.
http://code.activestate.com/recipes/66062-determining-current-function-name/
SO! lütfen açıklama sağlamayı ve sadece dış bağlantılara işaret etmeyi düşünün. –
- 1. Dize olarak işlev adını çağırın Get
- 2. Bash'de bir işlev tanımı nasıl yazdırılır?
- 3. Nasıl Yapılır Enum alanları dize olarak yazdırılır?
- 4. Lua'da bir işlev verilen bir işlev var mı, adını bir dize olarak döndürüyor mu?
- 5. Python, işlev kapatma işlevinin adını nasıl saklar?
- 6. Tablo adını bir dize olarak belirtmenin bir yolu var mı?
- 7. Dize her zaman ekranın ortasına nasıl yazdırılır?
- 8. Bir ilkel işlevin formülleri nasıl alınır?
- 9. EC2 örneğinin içinden ELB adını alın
- 10. Mevcut testin adını bir Mocha testi içinden nasıl alabilirim?
- 11. Hata ayıklama haskell: Her çağrıda bir işlevin adını görüntüleme
- 12. Arayanın işlev adını Python'da başka bir işlevin içine mi almak istiyorsunuz?
- 13. C# işlev işaretçisinden işlev adı nasıl alınır?
- 14. Bir işlevin reentrant olup olmadığını nasıl bulurum?
- 15. Python: Bir işlev içindeki bir işlevin bir işlev içindeki ismini döndürür.
- 16. Ağaç yapısını Ocaml'de hızlı bir dize nasıl yazdırılır?
- 17. Bir işlevin bir dekoratör
- 18. C++ bir işlev/yöntemin karışık isimlerini al
- 19. 'Bu' anahtar sözcük, başka bir işlevin içindeki bir işlev içinde hangi nesneyi gösterir?
- 20. Alan adını bir işlev şablonuna aktarma
- 21. Bu işlevi çağırmak için nasıl bir işlev alabilirim?
- 22. Lateks'te bir işlevin altına nasıl karakter yerleştirilir?
- 23. Grails: Geçerli olanın adını bir Taglib içinden gösterme
- 24. Bir işlevin işaretçisi -
- 25. Bu işlev C/C++
- 26. İşlev nasıl kaydedilir VEYA dize olarak sözlükte değer (C#)
- 27. Bir işlevin ad alanını nasıl belirlersiniz?
- 28. Gdb'de -0x4 (% rbp) nasıl yazdırılır? demontaj olarak
- 29. Java'da bu yöntem içinden yöntem adı nasıl bulunur?
- 30. Bir değer döndüren işlevin önemi nedir?
Eğer biz seçtik cevap itibaren http://meta.stackexchange.com/questions/18584/how-to-ask-a-smart-question-on-so/25128#25128 –
gör Bunun gerçekten bir kopya olduğu sonucuna var. Gerçekten, neredeyse aynı adı taşıyan bir soru zaten vardı: http://stackoverflow.com/questions/251464/how-to-get-the-function-name-as-string-in-python –
Buna katılmıyorum # 251464 kopyası - Bu soru tersine tersi gibi görünüyor. –