def applejuice(q):
print THE FUNCTION NAME!
Powinno to skutkować "pisklętem" jako łańcuchem.Jak wydrukować nazwę funkcji w postaci napisu w języku Python od wewnątrz tej funkcji
def applejuice(q):
print THE FUNCTION NAME!
Powinno to skutkować "pisklętem" jako łańcuchem.Jak wydrukować nazwę funkcji w postaci napisu w języku Python od wewnątrz tej funkcji
Działa to również:
import sys
def applejuice(q):
func_name = sys._getframe().f_code.co_name
print func_name
Musisz wyjaśnić, jaki jest twój problem. Ponieważ odpowiedź na to pytanie brzmi:
print "applejuice"
może on znaczy: def func (anothah_func): print anothah_func's name – wilhelmtell
Cóż, to zdecydowanie możliwe. Zobaczymy, czy on mówi, jaki jest problem. –
def applejuice(**args):
print "Running the function 'applejuice'"
pass
lub zastosowanie:
myfunc.__name__
>>> print applejuice.__name__
'applejuice'
również zobaczyć how-to-get-the-function-name-as-string-in-python
upvote dla 'myfunc .__ name__' – philshem
import traceback
def applejuice(q):
stack = traceback.extract_stack()
(filename, line, procname, text) = stack[-1]
print procname
Zakładam ten jest używany do debugowania, więc może chcesz przejrzeć inne procedury oferowane przez traceback
module. Oni pozwalają wydrukować cały stos wywołań, ślady wyjątku, itp
Innym sposobem
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)
Ta strona dali mi godnej wyjaśnienie jak działa sys._getframe.f_code.co_name, która zwraca nazwę funkcji.
http://code.activestate.com/recipes/66062-determining-current-function-name/
Wlecome SO SO! proszę, pomyśl o dostarczeniu wyjaśnień, a nie tylko o odsyłaczach zewnętrznych. –
Zobacz http://meta.stackexchange.com/questions/18584/how-to-ask-a-smart-question-on-so/25128#25128 –
Z odpowiedzi wybranego możemy wniosku, że był to rzeczywiście duplikat. Rzeczywiście, pytanie prawie dokładnie takie samo już istniało: http://stackoverflow.com/questions/251464/how-to-get-the-function-name- is-string-in-python –
Nie zgadzam się, że jest to duplikat # 251464 - wydaje się, że to pytanie jest odwrotnością. –