這是一個學術問題,不僅僅是一個實際問題。我試圖深入研究Python的基礎,並且我想知道:如果我願意,我可以在純Python中實現staticmethod
和classmethod
裝飾器嗎?靜態方法和類方法裝飾器可以在純Python中實現嗎?
對於staticmethod
也許我可以保留對原始函數的引用並將其稱爲省略第一個參數?
對於classmethod
也許我可以保留對原始函數的引用並將其稱爲傳遞第一個參數的類型,而不是參數本身? (我將如何處理它直接在課堂上被調用?)
同樣,這不是我想要在我的程序中實際實現它;我想了解它的語言是如何工作的。如果可以這樣做,我會非常感激代碼示例。如果沒有,我會理解爲什麼它不能在理論上做的解釋。謝謝!
編輯:感謝您的答案和參考描述符協議!至於進一步擴大我的Python的理解的一種手段,我想請教兩個更多的事情:通過實現__ __電話在我們班級的特殊方法
會這樣做沒有描述協議,例如?
描述符協議在Python 2.7和Python 3.x中的工作方式是否相同?
再次感謝!
我打算接受這個答案,因爲它對我原來的問題是一個很好的完整答案。不過,如果你回答我的編輯,我也會很感激!謝謝! – Tom 2012-08-04 19:03:54