class?Person(object):
????__count?=?0
????@classmethod
????def?how_many(cls):
????????return?cls.__count
????def?__init__(self,name):
????????self.name=name
????????Person.__count=Person.__count+1
print?Person.how_many()
p1?=?Person('Bob')
print?Person.how_many()
print?p1.how_many()#這里通過實(shí)例調(diào)用函數(shù)how_many()怎么也可以?因?yàn)閷?shí)例屬于類,所以類的屬性(方法)how_many()也可以被實(shí)例p1調(diào)用?
#如何改可以實(shí)現(xiàn)只能通過類Person調(diào)用,而無法通過實(shí)例調(diào)用,從而提高安全性?
2 回答

kngines
TA貢獻(xiàn)10條經(jīng)驗(yàn) 獲得超2個(gè)贊
how_many(self)是類方法,類可以訪問類方法也可以訪問實(shí)例方法;
實(shí)例可以訪問實(shí)例方法也可以訪問類方法;
類本身可以訪問函數(shù),實(shí)例不能,根據(jù)你的描述可以把 how_many()方法定義成函數(shù)
添加回答
舉報(bào)
0/150
提交
取消