python沒有和c++中static關鍵字,它的靜態方法是怎樣的呢?還有其它語言中少有的類方法又是神馬?
python中實現靜態方法和類方法都是依賴於python的修飾器來實現的。
[python]view plain
copy
print?
class
myclass:
defmethod(
self
):
("method"
) @staticmethod
defstaticmethod():
("static method"
) @classmethod
defclassmethod(
cls):
("class method"
)
大家注意到普通的物件方法、類方法和靜態方法的去別了嗎?
物件方法有self引數,類方法有cls引數,靜態方法是不需要這些附加引數的。
在c++中是沒有類方法著個概念的的。
python 靜態方法
靜態方法 staticmethod 類方法 classmethod 可被類或類的例項物件呼叫。class 中的方法 例項方法,第乙個引數必須要預設傳例項物件,一般習慣用self。靜態方法,引數沒有要求。類方法,第乙個引數必須要預設傳類,一般習慣用cls。感覺唯一區別就是類方法第乙個引數預設是類本身,...
Python 類方法 靜態方法
1 我們已經討論了類 物件可以擁有像函式一樣的方法,這些物件方法與函式的區別只是乙個額外的self變數 coding utf 8 usr bin python filename method.py class person grade 1 def init self,name self.name n...
Python 靜態方法 類方法
一 靜態方法 乙個不能訪問例項變數和類變數的方法,它與類唯一的關聯就是需要通過類名來呼叫這個方法。class person object def init self,name self.name name def eat self print s is eating self.name static...