[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