1. 程式人生 > >python類、方法、屬性

python類、方法、屬性

構造方法“__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!!