亚洲在线久爱草,狠狠天天香蕉网,天天搞日日干久草,伊人亚洲日本欧美

為了賬號安全,請及時綁定郵箱和手機立即綁定

Animal.count?

在類Animal類內的__init__方法,使用count屬性,為什么要寫成Animal.count,直接用count不行嗎,或者self.count。

正在回答

3 回答

額,那么簡單

0 回復 有任何疑惑可以回復我~

因為count是類屬性,所以用類名.count,self.*是實例屬性,學到后面才知道。:)

1 回復 有任何疑惑可以回復我~

如果count改成__count變成類的私有屬性后,在__init__方法里無法直接__count訪問類的私有屬性,需要Animal.__count,嘗試了下self.__count也可以,我理解是__count本身是類的屬性,任何一個實例并不單獨具有這個屬性,但是可以通過實例調用類的get和set方法去修改類的屬性,就和直接用類名調用get和set方法效果是一樣的,比如下面的代碼里animal.set和dog.set都可以修改類的屬性__count。



class?Animal(object):????
????__count?=?0????
????def?__init__(self,?name,?age):????????
????????self.name?=?name????????
????????self.age?=?age????????
????????#?__count?+=?1?#??E:?referenced?before?assignment????????
????????Animal.__count?+=?1????
????@classmethod????
????def?set_count(cls,?count):????????
????????cls.__count?=?count????
????@classmethod????
????def?get_count(cls):????????
????????return?cls.__count????
????????????????????
????print(Animal.get_count())?#?0
????Animal.set_count(2)
????print(Animal.get_count())?#?2
????dog?=?Animal('shitty',?2)?
????dog.set_count(5)??????????
????print(Animal.get_count())?#?5


2 回復 有任何疑惑可以回復我~

舉報

0/150
提交
取消
Python3 進階教程(新版)
  • 參與學習       44132    人
  • 解答問題       242    個

學習函數式、模塊和面向對象編程,掌握Python高級程序設計

進入課程

Animal.count?

我要回答 關注問題
微信客服

購課補貼
聯系客服咨詢優惠詳情

幫助反饋 APP下載

慕課網APP
您的移動學習伙伴

公眾號

掃描二維碼
關注慕課網微信公眾號