使用場景:多個對象(由同一個類產生)的屬性同名且值都一樣,這時就需要使用init()方法.
# 多個對象(由同一個類產生)的屬性同名且值都一樣,這時就需要使用__init__()方法. # class 定義屬性和方法,增加代碼的復用性 __init__()方法 """ 雙下划線開頭,雙下划線結尾的方法都具有特殊含義,並且此方法在特定情況下會自動調用.(調用就是使用,執行的意思)Python解釋器會自動調用,內部已經寫好了. 把定義屬性的方法寫在__init__()方法里面,當然,也可以自己定義.只是需要自己去寫調用方法 稱之為魔法方法.也叫運算符重載方法 在創建對象時就會自動調用. __init__()方法叫初始化,功能: 定義屬性 在其他的語言中也有__init__()方法,就是進行屬性賦值操作的方法. 自我理解:類似手機或電腦在開機啟動的時候進行的加載操作.可以簡單理解為是一個程序正式運行前的准備工作. """ class Dog: def __init__(self, name): # 這里的name稱為自定義參數.不要寫死了這里加形參進行傳參操作.如果不想讓屬性的初始值寫死,可以給init加形參,通過參數的方式傳遞給屬性 self.type = '狗' self.name = name # 自定義屬性的初始值 # 先造對象,再調用init()方法init的實參應該在創建對象的類名后面的小括號中傳遞 dog1 = Dog('小花') # 在創建的時候就會執行init()方法,同時注意init()方法有一個位置參數(形參),不能調用的時候不能為空,所以這里一定要記得給init()傳一個參數'小花' print(id(dog1.name)) # 2778225245504 print(id(dog1.type)) # 2240461703328 雖然id地址一樣,但是仍然不一樣 print(dog1.name) # 小花 print(dog1) # <__main__.Dog object at 0x0000025674A58978> # 都有屬性type,值一樣,但是 不是同一個屬性.只是屬性名字一樣而已.創建的時候代碼會走兩遍,每次創建一個對象就會執行一遍 dog2 = Dog('小黑') # 小黑 print(dog2.name) # 2240461703328 print(id(dog2.name)) # 2778225246032 print(id(dog2.type)) # 2240461703328 雖然id地址一樣,但是仍然不一樣 # 類中寫屬性,只能在init()方法中寫 # 這里記住:雖然打印輸出的id值一樣(地址值),但實際上dog1.type和dog2.type不一樣,是獨立的兩個.只是在Python解釋器中為了運行效率,將同一個type的值進行了緩存