說我有一類與一羣方法:Python:爲類的任何方法做些什麼?
class Human():
def eat():
print("eating")
def sleep():
print("sleeping")
def throne():
print("on the throne")
然後我跑所有
John=Human()
John.eat()
John.sleep()
John.throne()
我要爲被稱爲每種方法運行print("I am")
方法。所以我應該得到像
I am:
eating
I am:
sleeping
I am:
on the throne
有沒有辦法做到這一點,而不必重新格式化每種方法?
使用一個裝飾,它適用於所有方法:[將一個裝飾器附加到一個類中的所有函數](http://stackoverflow.com/q/3467526)和[編寫一個將裝飾器應用於所有方法的類裝飾器](http://stackoverflow.com/q/6695854) – 2014-09-25 11:33:52
如果您想盡量減少需要編輯的編輯數量,最簡單的方法就是更改每個方法的定義。如果您正在尋找一種將變更隔離到單個地方的方法,以適用於當前或未來的任何方法,裝飾者就是要走的路。 – chepner 2014-09-25 12:09:29
爲什麼不有一個函數'def do(self,action)',然後'eat'變成'self.do(「eating」)'並且輸出的任何進一步變化都發生在一個地方。 – jonrsharpe 2014-09-25 12:23:21