课程
/后端开发
/Python
/python进阶
将“Person.__count = Person.__count + 1”写在how_many()下时,输出为1,2这是为什么?
2017-08-03
源自:python进阶 4-10
正在回答
写在__init__下时,只有创建实例的时候count才加1
第一句(倒数第三行) print Person.how_many() 时调用how_many(),Person.__count加1;
创建实例后的print Person.how_many()又调用了一次how_many(),又加1
这两次都调用类方法,每调用一次,count会加1,若把最后一行换成p1.how_many() 会变成1 3
方法分为类方法和实例的方法,上面的装饰器规定了这是一个类方法,类方法是类和实例都可以访问的方法,每次创建一个对象进行初始化都会调用 def __init__(self),因此在这个函数中打印count,有几个实例就会有统计几个,因此初始化第一个实例,统计为1,第二个初始化实例,统计为2
举报
学习函数式、模块和面向对象编程,掌握Python高级程序设计
购课补贴联系客服咨询优惠详情
慕课网APP您的移动学习伙伴
扫描二维码关注慕课网微信公众号