[問題] decorator class in a class

看板Python作者 (nahgnimiast)時間1年前 (2022/11/18 14:58), 1年前編輯推噓0(002)
留言2則, 2人參與, 1年前最新討論串1/5 (看更多)
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

11/18 17:31, 1年前 , 1F
因為T1回傳不是function,instance並不會自動傳入self
11/18 17:31, 1F

11/19 20:23, 1年前 , 2F
謝謝
11/19 20:23, 2F
文章代碼(AID): #1ZToqZKZ (Python)
文章代碼(AID): #1ZToqZKZ (Python)