作者lycantrope (阿宽)
看板Python
标题Re: [问题] decorator class in a class
时间Fri Nov 18 15:14:52 2022
※ 引述《tsaiminghan (nahgnimiast)》之铭言:
: class T1(object):
: def __init__(self, func):
: self.func = func
: def __call__(self, *arg, **kw):
: print('T1:', locals())
: return self.func(*arg, **kw)
: def T2(func):
: def wrapper(*arg, **kw):
: print(locals())
: return func(*arg, **kw)
: return wrapper
讲错还请高手指正
@T1
def F():
pass
把decorator还原:
def F():
pass
F = T1(F)
F已经变成有implement call的 T1 class instance
所以在呼叫F(),locals()会带有self
--
※ 发信站: 批踢踢实业坊(ptt.cc), 来自: 133.51.216.27 (日本)
※ 文章网址: https://webptt.com/cn.aspx?n=bbs/Python/M.1668755694.A.ECC.html
1F:→ tsaiminghan: 抱歉,我没说清楚 11/18 15:51
2F:→ tsaiminghan: 对於F函式,T1, T2使用上都没有问题 11/18 15:52
3F:→ tsaiminghan: 有问题的是class A中使用T1 11/18 15:52
4F:→ tsaiminghan: 传进来的arg中,函少class A的self 11/18 15:53