在深入Python,馬克朝聖者說:在Python中定義類方法的多種方法?
當定義你的類方法時,你必須明確列出自己作爲每個方法的第一個參數
隨後他給出了幾個例子這個代碼:
def clear(self): self.data.clear()
def copy(self):
if self.__class__ is UserDict:
return UserDict(self.data)
import copy
return copy.copy(self)
雖然經歷了一些Python代碼在網上,我遇到了@classmethod
裝飾。這方面的一個例子是:
class Logger:
@classmethod
def debug(msg):
print "DEBUG: " + msg
(請注意,有在debug
功能沒有self
參數)
是否有定義使用self
作爲第一個參數類的方法和使用該@classmethod
裝飾任何區別?如果不是,是定義更常用/優先於另一種的類方法的一種方法?
'self'表示對類實例的引用。 請參閱http://stackoverflow.com/questions/38238/what-are-class-methods-in-python-for –