作者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://www.ptt.cc/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
→ lycantrope: 因為T1回傳不是function,instance並不會自動傳入self 11/18 17:31
→ tsaiminghan: 謝謝 11/19 20:23