日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程语言 > python >内容正文

python

python面向对象-1方法、构造函数

發布時間:2023/11/29 python 28 豆豆
生活随笔 收集整理的這篇文章主要介紹了 python面向对象-1方法、构造函数 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

類是指:描述一種事物的定義,是個抽象的概念?
實例指:該種事物的一個具體的個體,是具體的東西?

打個比方:?
“人”是一個類。“張三”是人類的一個具體例子?

在編程時也是同樣的道理,你先自己定義一個“類”,當你需要用時,用“類”的定義來創造一個具體的例子。?

用類的定義來創建一個實例,就叫做類的實例化。
實例化過程就是調用類的構造函數,完成該實例的數據分配

下面用一個洗衣機的例子來演示:

這個是一個簡單的手動洗衣機 w 實例化了Washer類:

1 #class Washer: 2 class Washer:#定義一個Washer類 3 4 def __init__(self): #這是定義類的構造函數,也是一個特殊的實例方法 5 self.water=0 #實例的屬性(變量) 6 self.scour=0 7 8 def add_water(self,water):#實例的方法(函數),可以接受實例化后傳過來的參數給類內實例變量,又因為實例繼承了類的屬性和方法,所以 9 #相當于傳遞給了類的實例化對象的實例變量 10 print('Add water:',water) 11 self.water=water#在類的方法內引用實例變量用 self.屬性名 12 13 def add_scour(self,scour): 14 self.scour=scour 15 print('Add scour:',scour) 16 17 def start_wash(self): 18 print('Start wash...') 19 20 if __name__=='__main__': 21 w=Washer()#類的實例化 22 w.add_water(10)#傳遞參數到實例變量 23 w.add_scour(2) 24 w.start_wash()

執行結果:

?

類內定義實例方法需要手動加上self參數(如第4行),但在類實例化后調用這個方法時不必手動加self參數,python會自動添加,如第22行。

實例化方法是 w=Washer() ?,可以看出需要在類后加一個括號。

類外調用類內定義的實例方法可以 實例名.方法名() ,例如

w.add_scour(2),必要的時候加上參數。

?


?下面改動一下程序,弄成半自動洗衣機,即在類的內部,方法之間相互調用。

washa.py:

1 class Washer: 2 3 def __init__(self): 4 self.water=0 5 self.scour=0 6 7 def set_water(self,water): 8 self.water=water 9 self.add_water() 10 11 def set_scour(self,scour): 12 self.scour=scour 13 self.add_scour()#在類內調用函數,用 self.方法名 14 15 def add_water(self): 16 print('Add water:',self.water) 17 18 def add_scour(self): 19 print('Add scour:',self.scour) 20 21 def start_wash(self): 22 print('Start wash...') 23 24 if __name__=='__main__': 25 w=Washer() 26 w.set_water(10) 27 w.set_scour(2) 28 w.start_wash() 29

也可以改成:

1 class Washer: 2 3 def __init__(self): 4 self.water=0 5 self.scour=0 6 7 def set_water(self,water): 8 self.water=water 9 10 def set_scour(self,scour): 11 self.scour=scour 12 13 def add_water(self): 14 print('Add water:',self.water) 15 16 def add_scour(self): 17 print('Add scour:',self.scour) 18 19 def start_wash(self): 20 self.add_water() 21 self.add_scour() 22 print('Start wash...') 23 24 if __name__=='__main__': 25 w=Washer() 26 w.set_water(10) 27 w.set_scour(2) 28 w.start_wash()

運行結果:


做如下改動,用戶可以不設置洗衣機加水和洗滌劑量也可以洗衣服:

?

1 class Washer: 2 3 def __init__(self): 4 self.water=10#將實例屬性修改為默認的標準洗衣程序需要的量 5 self.scour=2 6 7 def set_water(self,water): 8 self.water=water 9 10 def set_scour(self,scour): 11 self.scour=scour 12 13 def add_water(self): 14 print('Add water:',self.water) 15 16 def add_scour(self): 17 print('Add scour:',self.scour) 18 19 def start_wash(self): 20 self.add_water() 21 self.add_scour() 22 print('Start wash...') 23 24 if __name__=='__main__': 25 w=Washer() 26 ## w.set_water(10) #這兩行代碼注釋掉,代表用戶不必設置水和洗滌劑量 27 ## w.set_scour(2) 28 w.start_wash() 29

但是這樣,只能加入10L水和2L洗滌劑,不好,要改進。用到構造函數。

?


?

1 class Washer: 2 3 def __init__(self,water=10,scour=2): 4 self.water=water 5 self.scour=scour 6 7 def set_water(self,water): 8 self.water=water 9 10 def set_scour(self,scour): 11 self.scour=scour 12 13 def add_water(self): 14 print('Add water:',self.water) 15 16 def add_scour(self): 17 print('Add scour:',self.scour) 18 19 def start_wash(self): 20 self.add_water() 21 self.add_scour() 22 print('Start wash...') 23 24 if __name__=='__main__': 25 w=Washer() 26 w.start_wash() 27 28 wb=Washer(100,10) 29 wb.start_wash() 30 31 wc=Washer(100,10) 32 wc.set_water(50) 33 wc.set_scour(5) 34 wc.start_wash() 35 36 37 38 39

運行結果:?

構造函數可以使類在實例化時實例對象更加豐富,具有實例化不同種類的實例的作用。

?

轉載于:https://www.cnblogs.com/zhubinglong/p/6945717.html

總結

以上是生活随笔為你收集整理的python面向对象-1方法、构造函数的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。