正在回答
3回答
同学,你好。同学可根据下述两个例子来理解 @age.setter和@property。
1、@property:可以使方法以属性的方式调用。在调用的时候可以体现出来,方法在调用时是要添加括号的
例:

2、当属性设置为私有属性时,在外部不可以直接修改,因此可以同时使用@property和@age.setter,从而可以修改私有属性的值。
可以理解为:只有@property表示只读。同时有@property和@*.setter表示可读可写。
class PetCat(object):
def __init__(self, age):
self.__age = age
@property
def age(self):
return self.__age
@age.setter
def age(self, value):
if not isinstance(value, int):
print('年龄只能是整数')
return 0
if value < 0 or value > 100:
print('年龄只能介于0-100之间')
return 0
self.__age = value
@property
def show_info(self):
return '今年{}岁'.format( self.__age)
cat_black = PetCat(2)
rest = cat_black.show_info
print(rest)
cat_black.age = 25
rest = cat_black.show_info
print(rest)如果我的回答解决了您的疑惑,请采纳!祝学习愉快~~~~
慕python_SD三德
2020-03-27 12:38:41
那如果我不使用@property我打括号会报错吗??
__str__也不怎么理解……
1.Python零基础入门
- 参与学习 人
- 提交作业 2727 份
- 解答问题 8160 个
想要进入Python Web、爬虫、人工智能等高薪领域,你需要掌握本阶段的Python基础知识,课程安排带你高效学习轻松入门,学完你也能听得懂Python工程师的行业梗。
了解课程


恭喜解决一个难题,获得1积分~
来为老师/同学的回答评分吧
0 星