这段代码定义了一个名为'Person'的类,该类有两个实例属性:'name'和'age'。其中,'name'和'age'都使用了'_'作为前缀,表示它们应该被视为私有属性,外部不应该直接访问它们。

该类还有三个方法:

  • 构造函数'init()',用于初始化实例属性。
  • 'play()'方法,用于根据年龄判断一个人正在玩什么游戏。
  • 三个装饰器'@property'、'@age.setter',用于将'age'属性封装成一个访问器和一个修改器,使得外部代码可以通过'person.age'获取和修改'age'属性,但是不能直接访问'_age'属性。

在'main()'函数中,首先创建了一个名为'person'的'Person'对象,然后调用了它的'play()'方法,输出了'王大锤正在玩飞行棋'。接着通过赋值的方式修改了'person'的'age'属性,再次调用了'play()'方法,输出了'王大锤正在玩斗地主'。最后,试图直接修改'person'的'name'属性,但是因为'name'属性没有设置setter方法,所以会抛出'AttributeError'异常。

Python 类属性封装:使用 @property 实现访问器和修改器

原文地址: https://www.cveoy.top/t/topic/nhhY 著作权归作者所有。请勿转载和采集!

免费AI点我,无需注册和登录