为了账号安全,请及时绑定邮箱和手机立即绑定

@classmeth 工作机制

将“Person.__count = Person.__count + 1”写在how_many()下时,输出为1,2这是为什么?

正在回答

4 回答

写在__init__下时,只有创建实例的时候count才加1

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

第一句(倒数第三行) print Person.how_many() 时调用how_many(),Person.__count加1;

创建实例后的print Person.how_many()又调用了一次how_many(),又加1

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

这两次都调用类方法,每调用一次,count会加1,若把最后一行换成p1.how_many()   会变成1  3

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

方法分为类方法和实例的方法,上面的装饰器规定了这是一个类方法,类方法是类和实例都可以访问的方法,每次创建一个对象进行初始化都会调用 def __init__(self),因此在这个函数中打印count,有几个实例就会有统计几个,因此初始化第一个实例,统计为1,第二个初始化实例,统计为2

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

举报

0/150
提交
取消
python进阶
  • 参与学习       255532    人
  • 解答问题       3038    个

学习函数式、模块和面向对象编程,掌握Python高级程序设计

进入课程

@classmeth 工作机制

我要回答 关注问题
微信客服

购课补贴
联系客服咨询优惠详情

帮助反馈 APP下载

慕课网APP
您的移动学习伙伴

公众号

扫描二维码
关注慕课网微信公众号