dog 類
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!")
其中的精要點撥,
我們定義了乙個名為dog的類,根據約定,在python中,首字母大寫的名稱指的是類。
這個類的定義中的括號是空的,因為我們要從空白建立這個類。
"""***"""這裡為我編寫的乙個文件字串,用來對這個類的功能作一些簡要的描述。
__init___()是乙個特殊的方法,每當你根據dog類建立新的例項的時候,python都會自動執行它。在這個方法中,init的前面和後面都有兩個下劃線,這是一種約定哈。(可以不用理會:目的在於避免python預設方法與普通方法發生名稱上的衝突。)
我們將方法__init__()定義成了包含三個形參:self、name、age.
在這個方法中,self必不可少,還必須要位於其他形參的前面。(self會自動傳遞,因此我們不需要傳遞它。每當我們根據dog類建立例項的時候,都只需給最後的兩個形參比如說這裡的(name和age)提供值即可。
至於self.name = name和self.age = age,
這裡的兩個變數都有字首self,
self.name = name用來獲取儲存在形參name的值,並將其賦到變數name中,然後該變數被關聯到當前建立的例項當中去。
self.age = age用來獲取儲存在形參age的值,並將其賦到變數age中,然後該變數被關聯到當前建立的例項當中去。
小結:self.*** = *** 用來獲取儲存在形參***的值,並將其賦到變數***中去,然後該變數被關聯到當前建立的例項當中去。
dog類還定義了另外兩種方法:sit()和roll_over().
因為這些方法當中不需要額外的資訊比如說名字或者是年齡等等,所以它們只有乙個形參self。
即sit(self)和roll_over(self)
python中元類在建立類和例項的作用
最近在研究backtrader的底層源 作者用類若干的類和元類,以前沒有接觸過元類,現在經過查了一些資料,知道了元類是建立類的類,可以用來控制類的建立和例項的建立過程,也可以隱性地繼承屬性和方法,元類的常見的應用有建立單類模式 orm。由於元類的理解比較抽象,可以用下面的 理解元類在建立類和例項時的...
python 類中下劃線的作用
python 用下劃線作為變數字首和字尾指定特殊變數。不能用 from module import 匯入 系統定義名字 類中的私有變數名 核心風格 避免用下劃線作為變數名的開始。因為下劃線對直譯器有特殊的意義,而且是內建識別符號所使用的符號,我們建議程式設計師避免用下劃線作為變數名的開始。一般來講,...
類DirectColorModel的作用
directcolormodel 類別是使用畫素值的 colormodel 類別,畫素值以單獨樣本的形式表示 rgb 顏色和 alpha 資訊,並將單個畫素的所有樣本打包成單個 int short 或 byte 量。此類別只能與型別 colorspace.type rgb 的 colorspaces...