物件導向程式設計是最有效的軟體編寫方法之一。在物件導向程式設計中,我們編寫表示現實世界中的事物和情景的類,並基於這些類來建立物件。編寫類時,我
們定義一大類物件都有的通用行為。基於類建立物件時,每個物件都自動具備這種通用行為,然後可根據需要賦予每個物件獨特的個性。使用物件導向程式設計可模擬
現實情景,其逼真程度達到了令人驚訝的地步。
根據類來建立物件被稱為例項化,這讓我們能夠使用類的例項。在本章中,我們將編寫一些類並建立其實例。我們將指定可在例項中儲存什麼資訊,定義可對這些例項執行哪些操作。我們還將編寫一些類來擴充套件自己的程式檔案中匯入其他程式設計師編寫的類。
理解物件導向程式設計有助於我們像程式設計師那樣看世界,還可以幫助我們真正明白自己編寫的**:不僅是各行**的作用,還有**背後更巨集大的概念。了解類
背後的概念可培養邏輯思維,讓我們能夠通過編寫程式來解決遇到的幾乎任何問題。
隨著面臨的挑戰日益嚴峻,類還能讓我們以及與我們合作的其他程式設計師的生活更輕鬆。如果我們與其他程式設計師基於同樣的邏輯來編寫**,我們就能明白對方所做的工作;我們編寫的程式將能被眾多合作者所理解,每個人都能事半功倍。
9.1 建立和使用類
使用類幾乎可以模擬任何東西。下面來編寫乙個表示小狗的簡單類dog——它表示的不是特定的小狗,而是任何小狗。對於大多數寵物狗,我們都知道些什麼呢?它們都有自己的名字和年齡;我們還知道,大多數小狗還會蹲下和打滾。由於大多數小狗都具備上述兩項資訊(名字和年齡)和兩種行為(蹲下和打滾),我們的dog類將包含它們。這個類讓python知道如何建立表示小狗的物件,編寫這個類後,我們將使用它來建立表示特定小狗的例項。
類就是把一類具有共同屬性的事物封裝到一起,不用重複編寫這些程式,編寫好類後,需要的時候只需呼叫相應的類即可。
9.1.1 建立dog類
根據dog類建立的每個例項都將儲存名字和年齡。我們賦予了每條小狗蹲下(sit())和打滾(roll_over())的能力:
class dog():
"""一次模擬小狗的簡單嘗試"""
def __init__(self,name,age):
"""初始化屬性name和age"""
self.name = name
self.age = age
def sit(self):
『『『模擬小狗被命令時蹲下『『『
print(self.name.title() + 『 is now sitting.『)
def roll_over(self):
『『『模擬小狗被命令時打滾『『『
print(self.name.title() + " rolled over!")
這裡需要注意的地方很多,但我們也不用擔心,本章充斥著這樣的結構,我們有大把的機會熟悉它。在(1)處,我們定義了乙個名為dog的類。根據約定,
在python中,首字母大寫的名稱指的是類。這個類定義中的括號是空的,因為我們要從空白建立這個類。在(2)處,我們編寫了乙個文件字串,對這個
類的功能做了描述。
1、方法__init__()
類中的函式稱為方法;我們前面學到的有關函式的一切都適用於方法,就目前而言,唯一重要的差別是呼叫方法的方式。(3)處的方法__init__()是乙個
特殊的方法,每當我們根據dog類建立新例項時,python都會自動執行它。在這個方法的名稱中,開頭和末尾各有兩個下劃線,這是一種約定,旨在避免
python預設方法與普通方法發生名稱衝突。
我們將方法__init__()定義成了包含三個形參:self、name和age。在這個方法的定義中,形參self必不可少,還必須位於其他形參前面。為何必須
包含形參self呢?因為python呼叫這個__init__()方法來建立dog例項時,將自動傳入實參self,它是乙個指向例項本身的引用,讓例項能夠訪問類中的屬性
和方法。我們建立dog例項時,python將呼叫dog類的方法__init__()。我們將通過實參向dog()傳遞名字和年齡,self會自動傳遞,因此我們不需要傳遞它。
每當我們根據dog類建立例項時,都只需給最後兩個形參(name和age)提供值。
原文:
python 類的超基礎應用寵物小狗
flag 0class dog def init self,name,age 1 self.name name self.age age hellow 你好呀,我的朋友?defchat self print 朋友說吧,雖然我還不會回應,但我在聽?def sing self print 呀,我唱的你也...
Python學習第12天 類
1 類的建立 語法 class 類名 類的屬性 name 喵醬 類的方法 def joke self print 建立類成功 2 類的例項化 語法 例項名 類名 列如 my captain captain 意義 建立乙個例項,它可以呼叫所屬類的所有屬性和方法 知識點 3 self引數 4 init ...
python課程作業 第9章 類
使用者 def init self,first name,last name 初始化姓名 self.first name first name.title self.last name last name.title defdescribe user self 輸出姓名 print this is ...