如下圖,可以這樣理解程式的執行過程: 1--在記憶體中開闢一塊空間,用來儲存創建的類對象,Tool(類名)指向著該類對象的記憶體地址; 該類對象裡面存儲有屬性num = 0(類屬性)和方法def __init__(); 2--程式往下走,"Tool("鐵鍬")"創建了一個對象(實例對象),在該實例對象中 ...
如下圖,可以這樣理解程式的執行過程: 1--在記憶體中開闢一塊空間,用來儲存創建的類對象,Tool(類名)指向著該類對象的記憶體地址; 該類對象裡面存儲有屬性num = 0(類屬性)和方法def __init__(); 2--程式往下走,"Tool("鐵鍬")"創建了一個對象(實例對象),在該實例對象中有一個特殊的屬性能夠幫助實例對象指向類對象; 當Python在創建實例對象後自動執行init方法時,給該實例對象傳遞一些自定義/預設的屬性(實例屬性); 接下來執行Tool.num+=1,將類屬性的值由原先的num=0變成num=1; 程式執行到這裡,init方法執行結束,此時的實例對象中已經擁有了實例屬性,程式將現在的實例對象的引用地址返回並賦給了tool1,也就是說此時tool1指向了這個經過初始化的實例對象; 3--程式繼續往下走,"Tool("工兵鏟")"同第2步一樣執行,只不過又執行Tool.num+=1一次,將num=1的值改成了num=2; 4--程式繼續往下走,"Tool("水桶")"同第3步一樣執行,只不過又執行Tool.num+=1一次,將num=2的值改成了num=3; 5--程式執行完畢.