我對函數的簡單timemark-裝飾:如何知道函數方法在裝飾器中的類的名稱?
def dec_timemark(f):
def tmp(*args, **kwargs):
sys.stdout.write(strftime("%d.%m.%Y %H:%M:%S") + ' ' + f.__name__ +
' begin' + "\n")
res = f(*args, **kwargs)
sys.stdout.write(strftime("%d.%m.%Y %H:%M:%S") + ' ' + f.__name__ +
' end' + "\n" )
return res
return tmp
典型用法:
class Task():
@dec_timemark
def make_torrent():
sleep(10)
但如何添加到class
這decorator
名字? (不記錄:「make_torrent begin
」,例如「Task.make_torrent begin
」)?
'自.__ name__'不起作用。您必須訪問該類的屬性,而不是實例。 – 2011-04-08 06:55:59
謝謝。我編輯了我的答案以糾正錯誤。 – 2011-04-19 19:43:50