鑑於函數作爲參數傳遞給裝飾器,是否可以通過正在裝飾的方法的參數獲取對象實例的引用?例如下面的method1正在裝飾,我想打印對象實例的名稱。從我最初的研究看來,我可能需要使用mixin來跟蹤類實例並搜索/過濾正確的對象,但這看起來有點重要;因爲該方法通過自身引用了它的對象。使用相同的引用來打印裝飾器作用域的實例名稱是可行的嗎?是否可以在Python中的函數裝飾器中獲取對象實例的引用?
感謝
def customdecorator(f):
print f.self.method2(a,b, params) // where owner would be the reference to t (self)
class Test(object):
def __init__(self, name):
self.name = name
@customdecorator
def method1(self):
return 1
def method2(self, a,b):
#do something
t = Test()
什麼在做了點?你可以在你的方法裏面打一個打印...... – Netwave
裝飾器的第一個參數是方法的第一個參數:'self'。 –
也許我簡化了它,而不是打印名字是什麼abbount執行方法。 – user465374