[python] nazev metody
Petr Prikryl
PrikrylP na skil.cz
Čtvrtek Leden 11 13:14:30 CET 2007
mtip
> potreboval bych zjistit nazev metody uvnitr tridy.
> asi takhle:
> class a:
> def aa(self):
> print "ja jsem metoda:", xxx
> x=a()
> x.aa()
Možná by bylo dobré objasnit, proč to chceš vědět.
Pokud je to například kvůli výpisu informace,
kde se něco nepovedlo, pak může být lepší
nastudovat si modul inspect:
class a:
def aa(self):
import inspect
frame = inspect.currentframe()
info = inspect.getframeinfo(frame)
print 'Jsem metoda', info[2]
print 'Podrobnejsi info:', info
x=a()
x.aa()
Dalo by se to vylepšit třeba takto:
def JmenoMetody():
import inspect
return inspect.stack()[1][3]
class a:
def aa(self):
print 'Jsem metoda', JmenoMetody()
x=a()
x.aa()
Upřímně řečeno, nenapadá mě, jak by funkce mohla
jinak zjistit své jméno, aniž by se v zápisu to
jméno objevilo. Ale možná to jde i jednodušeji.
pepr
Další informace o konferenci Python