1. 程式人生 > >python - 面向物件 - 初始化方法__init__

python - 面向物件 - 初始化方法__init__

初始化方法
我們現在已經知道了使用 類名() 就可以建立一個物件
當使用類名()建立物件時,python的直譯器會自動執行以下操作:
1.為物件在記憶體中分配空間–建立物件
2.呼叫初始化方法為物件的屬性設定初始值–初始化方法__init__
這個初始化方法就是__init__方法,__init__是物件的內建方法
__init__方法是專門用來定義一個類具有哪些屬性的方法

改造初始化方法–初始化的同時設定初始值:
在開發中,如果希望在建立物件的同時,就設定物件的屬性,可以對__init__方法進行改造
1.把希望設定的屬性值,定義成__init__方法的引數
2.在方法內部使用self.屬性名 = 形參 接收外部傳遞的引數
3.在建立物件時,使用類名(屬性1,屬性2…)呼叫

舉例:

class Cat:
    def __init__(self,new_name):
        print('這是一個初始化方法')
        # self.屬性名 = 屬性的初始值
        #self.name = 'Tom'
        self.name = new_name
    # 在類中,任何方法都可以使用self.name
    def eat(self):
        print('%s 愛吃魚' %(self.name))

# 使用類名()建立物件的時候,會自動呼叫初始化方法__init__
tom = Cat('tom')
# 定義屬性之後,再用Cat建立物件的時候,都會擁有該屬性
print(tom.name)
tom.eat()

輸出:

tom
tom 愛吃魚

在後面再生成一個貓物件:

lazy_cat = Cat('miaomiao')
print(lazy_cat.name)
lazy_cat.eat()

輸出:

print(lazy_cat.name)
lazy_cat.eat()