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()#这里通过实例调用函数how_many()怎么也可以?因为实例属于类,所以类的属性(方法)how_many()也可以被实例p1调用?
#如何改可以实现只能通过类Person调用,而无法通过实例调用,从而提高安全性?
2 回答
![?](http://img1.sycdn.imooc.com/533e4ca50001117901990200-100-100.jpg)
kngines
TA贡献10条经验 获得超2个赞
how_many(self)是类方法,类可以访问类方法也可以访问实例方法;
实例可以访问实例方法也可以访问类方法;
类本身可以访问函数,实例不能,根据你的描述可以把 how_many()方法定义成函数
添加回答
举报
0/150
提交
取消