[問題] decorator class in a class

作者: tsaiminghan (tsaiminghan)   2022-11-18 14:58:40
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'
============================
作者: lycantrope (阿寬)   2022-11-18 17:31:00
因為T1回傳不是function,instance並不會自動傳入self
作者: tsaiminghan (tsaiminghan)   2022-11-19 20:23:00
謝謝

Links booklink

Contact Us: admin [ a t ] ucptt.com