python類、方法、屬性
阿新 • • 發佈:2018-12-21
構造方法“__init__()”
與普通方法不同的地方在於,當一個物件被建立後,會立即呼叫構造方法,該方法在類例項化時會自動呼叫。
# coding=gbk
#建立一個構造方法
class Foobar:
def __init__(self):
self.somevar=42
f=Foobar()
print(f.somevar)
輸出:
42
建立一個類
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!!")
方法__init__() 是構造方法,每當你根據Dog 類建立新例項時,Python都會自動執行它。方法__init__() 定義成了包含三個形參:self 、name 和age 。在這個方法的定義中,形參self 必不可少,還必須位於其他形參的前面。每個與類相關聯的方法呼叫都自動傳遞實參self ,它是一個指向例項本身的引用,讓例項能夠訪問類中的屬性和方法。建立Dog 例項時,Python將呼叫Dog 類的方法__init__() 。我們將通過實參向Dog() 傳遞名字和年齡;self 會自動傳遞,因此我們不需要傳遞它。每當我們根據Dog 類建立例項時,都只需給最後兩個形參(name 和age )提供值。
根據類建立一個例項
# coding=gbk 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!!") my_dog = Dog('willie', 6) print("My dog's name is " + my_dog.name.title() + ".")#訪問屬性name print("My dog is " + str(my_dog.age) + " years old.") my_dog.sit()#呼叫類中的方法 my_dog.roll_over() 輸出: My dog's name is Willie. My dog is 6 years old. Willieis now sitting. Willierolled over!!