一、基礎篇
在類例項方法定義中,第乙個引數為self,可認為是例項物件本身,類似於c++中的this指標。
兩種等價的呼叫方式:
1.obj.obj_method()
2.methodcall.obj_method(obj)
注:類方法和類的靜態方法不支援第二種呼叫方式,但支援第一種呼叫方式。
**舉例:
class methodcall:
def obj_method(self): #類例項方法
print("obj_method")
@classmethod
def class_method(cls): #類方法
print("class_method")
@staticmethod
def static_method(): #類靜態方法
print("static_method")
if __name__ == '__main__':
obj = methodcall()
obj.obj_method()
methodcall.obj_method(obj)
obj.class_method()
methodcall.class_method()
obj.static_method()
methodcall.static_method()
輸出結果:
obj_method
obj_method
class_method
class_method
static_method
static_method
錯誤的呼叫方式:
methodcall.class_method(obj)
methodcall.static_method(obj)
分別呼叫以上兩個表示式,輸出錯誤結果為:
typeerror: class_method() takes 1 positional argument but 2 were given
typeerror: static_method() takes 0 positional arguments but 1 was given
Python之旅 帶著決心出發(第9步)
規則 根據類的繼承關係樹,自底向上,自左向右搜尋,直到找到第乙個屬性為止。如果未找到,丟擲異常 來自 learning python 5th edition 一書figure 26 1 從python的搜尋路徑來看 子類定義了與父類相同的屬性,那麼通過物件訪問的方式,子類將覆蓋父類的屬性 存在多繼承...
python練習第10天
刪除l鍊錶中倒數第n值 這裡用了雙指標的巧妙運用就是,第乙個指標先運動n 1個距離然後使得連兩個指標之間的距離為n,然後一起運動使這樣的距離保持到末尾這樣就找到了那個第n個值 class solution def removenthfromend self,head listnode,n int l...
第10講 python 函式基礎
函式也是乙個物件,物件是記憶體中專門用來儲存資料的一塊區域 函式就是用來儲存一些可以執行的 並且可以在需要的時候,對這些 進行多次呼叫 定義函式的語法 def 函式名 形參1,形參2 塊定義乙個函式 def fn print 這是我第乙個函式 print fn 這是函式儲存的記憶體位址 函式和變數沒...