Zdravím, dneska budu ještě jednou otravovat.
Michal Vyskočil mi poradil, jak přijít na jméno volané metody, za to
mu díky, mně to hned posloužilo k realizování mého záměru, počítání
kolikrát byla metoda zavolána, nevím jestli to neřeším úplně blbě.

Totiž, chci to využít na statisrtiky na mých webových stránkách, ve
třídě která obsluhuje servírování dat z databáze a jejich renderování
do šablon, mám pro články/kategorie/indexovou stránku vlastní metodu,
takže mě napadlo, že vždy když někdo chce něco zobrazit, tak se tato
metoda musí zavolat a tím pádem já tohle můžu sledovat a počítat podle
toho, spolu s id volaného objektu z databáze které metoda dostane pak
můžu určit co přesně bylo v požadavku.

Takže co jsem vymyslel a funguje to:

# -*- coding: utf-8 -*-

from inspect import *

results = dict()

def check(classname):
        class_name = classname()
        method_name = stack(class_name)[1][3]
        if not method_name in results.keys():
                results[method_name] = 1
        else:
                results[method_name] += 1

def print_results():
        for key,value in results.iteritems():
                print '%s - %s' % (key, value)

class App1:

        def foo(self):
                check(self.__class__)

        def bar(self):
                check(self.__class__)

App1().bar()
App1().bar()
App1().bar()
App1().bar()

App1().foo()

print_results()

Vrací to správný výsledek, jenom se bojím, že moje myšlenka je úplně
špatná, takže prosím o kritiku.
Děkuji.
_______________________________________________
Python mailing list
Python@py.cz
http://www.py.cz/mailman/listinfo/python

Odpovedet emailem