2
我想訪問要在其上定義方法的類。例如,這可以用來爲裝飾器的方法創建別名。這種特殊情況可以在不使用裝飾器的情況下實現(alias = original_name
),但我想使用裝飾器,主要是因爲別名可以在頂部的方法定義的旁邊可見,在方法定義很長時很有用。在定義方法時從方法訪問python類
def method_alias(*aliases):
def aliased(m):
class_of_m = ??? # GET class of this method
for alias in aliases:
setattr(class_of_m, alias, m)
return m
return aliased
class Test():
@method_alias('check', 'examine')
def test():
print('I am implemented with name "test"')
後來我發現here,上述可通過使用兩個裝飾(第一存儲的別名方法屬性,後來已經創建的類的情況下,屬性添加到類)來實現。它可以在沒有裝飾課程的情況下完成,即只是裝飾該方法?這需要訪問裝飾器中的類名稱。