物件導向程式設計
類 繼承:多繼承
類中所有的__開頭的方法都是內建的來自於父類
定義類的語法
class類名(父類….)
#定義變數和方法
方法:
例項方法:只能通過例項呼叫,例項方法第乙個引數只能例項本身的引用
類方法:定義類方法要使用裝飾器@classmethod,定義的第乙個引數只能只能是類物件的引用,可以通過類或者例項直接呼叫
靜態方法:定義靜態方法要使用裝飾器@staticmethod,沒有預設必須引數,可以通過類或者例項直接呼叫
方法:依賴定義,依賴呼叫
a
def foo()
pass
a().foo()
class
person:
def__init__(self,first_name,last_name):
self.__first_name=first_name
self.__last_name=last_name
defshow(self,s):
#this show(s){}
print(self.__first_name)
print(self.__last_name)
print(self.full_name,s) #print(propterty(full_name),s)
@property
deffull_name(self):
return
self.__first_name+'.'+self.__last_name
@full_name.setter
deffull_name(self,full_name):
self.__first_name=full_name[:full_name.index(".")]
self.__last_name=full_name[full_name.index(".")+1
:]p=person("wang","wu")
p.show("haha")
print(p.full_name)
p.full_name="li.si
p.show("heihei")
例項方法例項:
class
myclass:
deffoo
(self):
print(id(self))
a = myclass() #建立本身
print(id(a))
a.foo()
類方法例項:
class
myclass:
deffoo
(self):
print(id(self))
a = myclass() #建立本身
b = myclass() #有建立了乙個新的例項
print(id(a))
a.foo()
myclass.foo() 這是錯誤的,不能被呼叫,因為foo()是例項方法
靜態方法例項:
class
myclass:
deffoo
(self):
print(id(self))
@classmethod
# def foo2(self):
# print(id(self))
deffoo2
(cls):
print(id(cls))
@staticmethod
deffoo3
(): print('foo3')
a = myclass() #建立本身
b = myclass() #有建立了乙個新的例項
print(id(a))
a.foo()
print(id(myclass))
myclass.foo2()
a.foo2()
a.foo()
myclass.foo3()
私有的類方法
__private_method 兩個下劃線開頭,宣告該方法為私有方法,不能在類地外部呼叫
在類的內部呼叫slef.__private_methods
類的專有方法:
_ init _ 建構函式,在生成物件時呼叫
_ del_ 析構函式,釋放物件時使用
_ repr_ 列印,轉換
_ setitem_按照索引賦值
_ getitem_按照索引獲取值
_ len_獲得長度
_ cmp_比較運算
_ call_函式呼叫
_ add_加運算
_ sub_減運算
_ mul_乘運算
_ div_除運算
_ mod_求餘運算
_ pow_稱方
Python筆記 類定義
python筆記 類定義 一 類定義 class 類名 語句 類例項化後,可以使用其屬性,實際上,建立乙個類之後,可以通過類名訪問其屬性 如果直接使用類名修改其屬性,那麼將直接影響到已經例項化的物件 類的私有屬性 private attrs 兩個下劃線開頭,宣告該屬性為私有,不能在類地外部被使用或直...
Python筆記 類定義
一 類定義 class 類名 語句 類例項化後,可以使用其屬性,實際上,建立乙個類之後,可以通過類名訪問其屬性 如果直接使用類名修改其屬性,那麼將直接影響到已經例項化的物件 類的私有屬性 private attrs 兩個下劃線開頭,宣告該屬性為私有,不能在類地外部被使用或直接訪問 在類內部的方法中使...
Python筆記 類定義
class 類名 語句 類例項化後,可以使用其屬性,實際上,建立乙個類之後,可以通過類名訪問其屬性 如果直接使用類名修改其屬性,那麼將直接影響到已經例項化的物件 類的私有屬性 private attrs 兩個下劃線開頭,宣告該屬性為私有,不能在類地外部被使用或直接訪問 在類內部的方法中使用時 sel...