課程
/后端開發
/Python
/python進階
我用的self.count = self.count +1 為什么打出三個0? ? 用Person.count 和self.count區別在哪里?
2015-10-23
源自:python進階 4-6
正在回答
類屬性調用:Person.count
實例屬性調用:self.count
在Python,有兩種屬性,類屬性和實例屬性,類屬性相當于類的靜態方法(類比于Java),實例屬性是每個實例單獨的屬性,樓主所說的用Person.count,這里調用的就是類屬性,self.count調用的是實例屬性,當在_init_中調用的是self時,然后打印的時候調用的是Person.count,那么count肯定是它的初始值0了,因為它沒有改變,用self.count,改變的只是實例的屬性,并沒有改變類屬性,所以打印出三個0了,如果樓主把print那個部分的Person換成p1,p2,p3的時候,打印的就是三個1了,因為他們的實例屬性在初始化的時候被+1了,而需要改變類屬性的話,樓主就需要把self.count = self.count +1 改成Person.count=Person.count+1了
再見你
舉報
學習函數式、模塊和面向對象編程,掌握Python高級程序設計
Copyright ? 2025 imooc.com All Rights Reserved | 京ICP備12003892號-11 京公網安備11010802030151號
購課補貼聯系客服咨詢優惠詳情
慕課網APP您的移動學習伙伴
掃描二維碼關注慕課網微信公眾號
2015-11-24
類屬性調用:Person.count
實例屬性調用:self.count
2015-10-23
在Python,有兩種屬性,類屬性和實例屬性,類屬性相當于類的靜態方法(類比于Java),實例屬性是每個實例單獨的屬性,樓主所說的用Person.count,這里調用的就是類屬性,self.count調用的是實例屬性,當在_init_中調用的是self時,然后打印的時候調用的是Person.count,那么count肯定是它的初始值0了,因為它沒有改變,用self.count,改變的只是實例的屬性,并沒有改變類屬性,所以打印出三個0了,如果樓主把print那個部分的Person換成p1,p2,p3的時候,打印的就是三個1了,因為他們的實例屬性在初始化的時候被+1了,而需要改變類屬性的話,樓主就需要把self.count = self.count +1 改成Person.count=Person.count+1了