作者tsaiminghan (nahgnimiast)
看板Python
标题[问题] decorator class in a class
时间Fri Nov 18 14:58:40 2022
T1是一个decorator class
用到class A func, 传进来的arg中,会少了class A self参数
请问有人可以解释原因吗?
code
===========================
class T1(object):
def __init__(self, func):
self.func = func
def __call__(self, *arg, **kw):
print('T1:', locals())
# T1: {'self': <__main__.T1 object at 0x7f28e2787c70>, 'arg': (), 'kw': {}}
return self.func(*arg, **kw)
class A(object):
@T1
def func(self):
pass
a = A()
a.func() # missing 1 required positional argument: 'self'
============================
--
※ 发信站: 批踢踢实业坊(ptt.cc), 来自: 101.12.30.175 (台湾)
※ 文章网址: https://webptt.com/cn.aspx?n=bbs/Python/M.1668754723.A.523.html
※ 编辑: tsaiminghan (101.12.30.175 台湾), 11/18/2022 16:07:09
※ 编辑: tsaiminghan (101.12.30.175 台湾), 11/18/2022 16:08:59
1F:→ lycantrope: 因为T1回传不是function,instance并不会自动传入self 11/18 17:31
2F:→ tsaiminghan: 谢谢 11/19 20:23