通过property和*setter来访问私有变量有什么特殊用处吗?
问1:定义了私有变量,为什么还要property和*setter来访问?不是多次一举?
问2:和get()获取,set()赋值两个方法,用法上有和区别?

10
收起
正在回答 回答被采纳积分+1
1回答
时间,
2019-08-13 11:35:52
同学,你好。
1、默认的私有属性是不可以在外部访问的。但私有属性也不是一成不变的,因此要给私有属性提供外部能够操作的方法。
2、设置get、set方法:在使用时调用set方法进行修改值,调用 get方法获取值
例:
class Person(object):
def get(self):
return self._height
def set(self, value):
if not isinstance(value, int):
raise ValueError("年龄只能是整数")
if value < 0 or value > 100:
raise ValueError("年龄只能介于0-100之间")
self._height = value
d = Person()
d.set(25)
print(d.get()) # 253、propery和*setter:直接以属性的方式访问age修改值即可
例:
class Person(object):
@property
def age(self):
return self._height
@age.setter
def age(self, value):
if not isinstance(value, int):
raise ValueError("年龄只能是整数")
if value < 0 or value > 100:
raise ValueError("年龄只能介于0-100之间")
self._height = value
d = Person()
d.age = 26
print(d.age) # 26如果我的回答解决了您的疑惑,请采纳!祝学习愉快~~~~
1.Python零基础入门
- 参与学习 人
- 提交作业 2727 份
- 解答问题 8160 个
想要进入Python Web、爬虫、人工智能等高薪领域,你需要掌握本阶段的Python基础知识,课程安排带你高效学习轻松入门,学完你也能听得懂Python工程师的行业梗。
了解课程
恭喜解决一个难题,获得1积分~
来为老师/同学的回答评分吧
0 星