方法是作為類屬性儲存的函式
def
get_size
(self):
pass
在python2, 3中的不同點。
2: pizza.get_size(), 會報乙個未繫結的函式的錯誤
3: pizza.get_size(), 會報乙個缺少引數的錯誤, 即,python3可以動態的傳入方法所屬於的類的任意乙個例項
靜態方法:
靜態方法是屬於類的方法,但是實際上並非執行在類的例項上
class
pizza
(object):
@staticmethod
defmix_ingredients
(x, y):
return x + y
defcook
(self):
return self.mix_ingredients(self.cheese, self.vegetables)
pizza().cook is pizza().cook false
pizza().mix_ingredients is pizza().mix_ingredients true
pizza().mix_ingredients is pizza.mix_ingredients true
靜態方法可以避免建立繫結方法(也是物件)的開銷,提高**的可讀性,知道這個方法並不依賴物件的狀態,可以在子類中覆蓋靜態方法類方法:
直接繫結到類的方法,
主要用於建立工廠方法, 即以特定的方式例項化物件,如果使用staticmethod,必須在方法中硬編碼類名pizza, 所有繼承自pizza的類都無法根據他們的需要使用這個方法
這裡子類可以用任何方法(靜態方法,類方法, 例項方法)覆蓋父類的抽象方法
python 靜態方法和類方法
python 靜態方法和類方法 class testclassmethod object method method hoho def init self self.name leon def test1 self print test1 print self classmethod def tes...
Python中的類方法 靜態方法和例項方法
一 例項方法 先定義乙個輸出日期的類date,後面內容都是基於此類進行拓展。class date def init self,year,month,day self.year year self.month month self.day day def str self return format ...
python 類的靜態方法和類方法
1.靜態方法 使用 staticmethod修飾 不需要傳入引數,類和類的例項物件都可以呼叫 沒有引數的方法,如果未宣告靜態方法的話,例項物件呼叫將會出錯 1class a staticmethod 宣告靜態方法 def printa 無需引數 print a a.printa 類名直接呼叫 a a...