这段代码什么意思class Personobject def __init__self name age self_name = name self_age = age # 访问器 - getter方法 property def nameself return self_name # 访问器 - getter方法 pro
这段代码定义了一个名为Person的类,该类有两个实例属性:名字和年龄。其中,名字和年龄都使用了"_"作为前缀,表示它们应该被视为私有属性,外部不应该直接访问它们。
该类还有三个方法:
- 构造函数__init__(),用于初始化实例属性。
- play()方法,用于根据年龄判断一个人正在玩什么游戏。
- 三个装饰器@property、@age.setter,用于将age属性封装成一个访问器和一个修改器,使得外部代码可以通过person.age获取和修改age属性,但是不能直接访问_personage属性。
在main()函数中,首先创建了一个名为person的Person对象,然后调用了它的play()方法,输出了'王大锤正在玩飞行棋'。接着通过赋值的方式修改了person的age属性,再次调用了play()方法,输出了'王大锤正在玩斗地主'。最后,试图直接修改person的name属性,但是因为name属性没有设置setter方法,所以会抛出AttributeError异常。
原文地址: https://www.cveoy.top/t/topic/bSUu 著作权归作者所有。请勿转载和采集!