"""""一、定義類並執行類中的方法
class類名:
def 方法名(self,arg):
print(arg)
return1
中間人(就是自定義的乙個變數、物件而已)=類名()
ret=中間人.方法名(1)
print(ret)
elf指中間人
self必須加
物件導向有三種特性
1.封閉
2.繼承
3.多型:python原生多型
"""#
例子:class
bar:
deffoo(self,arg):
(self,arg)
z1=bar()
(z1)
z1.foo(111)
print('
**********===')
z2=bar()
(z2)
z2.foo(666)
#結果為:
##<__main__.bar object at 0x000001f048ff77f0>
#<__main__.bar object at 0x000001f048ff77f0> 111
#**********===
#<__main__.bar object at 0x000001f048ff7b70>
#<__main__.bar object at 0x000001f048ff7b70> 666
class
bar:
deffoo(self,arg):
(self,self.name,arg)
#這裡self就是為z 提取z中的name 也就是說self就是中間變數或者說是帶進去那個數的自己
z=bar()
z.name='
lin'
z.age=20z.gender='
male
'z.foo(666)
#結果為:
#<__main__.bar object at 0x000002360e0b7ba8> alex 666
"""二、構造方法
"""class
bar:
def__init__
(self,name,age):
"""__initt__為構造方法
"""print('
123'
)
deffoo(self):
print('
456'
)z=bar('
lin',20)
#這樣可以傳進去
#一般將這些東西都放在init裡。也是進行乙個初始化
#當構建了乙個z=bar()之後 內部會自動執行init方法
#python自動幫你呼叫
(z)z.foo()
"""結果為:
123<__main__.bar object at 0x000001ec423a7e48>
456"""
#三、應用
class
person:
def__init__
(self,name,age):
self.name=name
self.age=age
defshow(self):
print('
%s-%s
'%(self.name,self.age))
lin=person('
lin',20)
lin.show()
zzzi=person('
zzzi
',20)
zzzi.show()
"""""
lin-20
zzzi-20
"""""
#四、三大特徵之一:繼承
class
grandfather:
defpiaochang(self):
pass
class father(grandfather):#
父類、基類
defchifan(self):
pass
defhejiu(self):
pass
defshuijiao(self):
pass
class son(father):#
子類、派生類
defwc(self):
pass
s=son()
s.chifan()
#父親裡的所有函式都可以繼承
s.piaochang()#
父親繼承了爺爺
""""
同時 若是不想繼承父類的某個函式設為x 可以在子類中重新寫乙個
這樣缺省會執行子類的
若父類子類都想執行可以用方法:
1.super(當前類名,self).x()
推薦用super 其為固定寫法
2.也可以用father.x(self)
"""#
2.多繼承問題
class
f0:
defa(self):
print('f0'
)class
f1(f0):
defa(self):
print('f1'
)class
f2:
defa(self):
print('f2'
)class
s(f1,f2):
pass
obj=s()
obj.a()
"""""
其結果為f1
當多繼承有相同函式時,優先選擇第乙個繼承的
多繼承只能在python和c++中使用
若f1中同樣沒有時 優先在f1的父類中找
永遠優先最左邊 類似二叉樹
同時若兩邊有公共的父類的話 優先子類 最後在共同父類(根)裡找
"""
python 物件導向(一)
def 函式名 x 定義乙個類的方式為 class 類名 xx 定義乙個貓類 class cat 屬性 方法 defeat self print s吃 s 5,5 defplay self print 玩 xiaohuamao cat eat 列印結果 吃 獲取物件屬性 定義乙個貓類 class c...
python物件導向(一)
物件導向最重要的概念就是類 class 和例項 instance 必須牢記類是抽象的模板,比如student類,而例項是根據類建立出來的乙個個具體的 物件 每個物件都擁有相同的方法,但各自的資料可能不同。仍以student類為例,在python中,定義類是通過class關鍵字 class stude...
python物件導向一
什麼是物件?物件就是記憶體中儲存指定資料的一塊區域,實際上物件就是乙個容器專門用來儲存資料 id 標識 type 型別 value 值 所謂物件導向簡單理解就是語言中所有的操作都是通過物件來進行的 面向過程 物件導向 把大象放進冰箱分幾步?開啟冰箱 對應開啟功能 裝大象 對應儲存功能 關門 對應關閉...