首页 > 编程语言 > 详细

python @property

时间:2020-02-17 21:10:58      阅读:58      评论:0      收藏:0      [点我收藏+]
class Person(object):
def __init__(self, name, age):
#属性直接对外暴露
#self.age = age
#限制访问
self.__age = age
self.__name = name
‘‘‘
def getAge(self):
return self.__age
def setAge(self, age):
if age < 0:
age = 0
self.__age = age
‘‘‘
#方法名为受限制的变量去掉双下划綫
@property
def age(self):
return self.__age
@age.setter #去掉下划线.setter
def age(self, age):
if age < 0:
age = 0
self.__age = age

@property
def name(self):
return self.__name
@name.setter # 去掉下划线.setter
def name(self, name):
self.__name = name

per = Person("sunck", 18)

#属性直接对外暴露
#不安全,没有数据的过滤
#per.age = -10
#print(per.age)

#使用限制访问,需要自己写set和get方法才能访问
#per.setAge(15)
#print(per.getAge())

per.age = -100 #相当于调用setAage
print(per.age) #相当于调用getAge
print(per.name)

#property:可以让你对受限制访问的属性使用点语法

python @property

原文:https://www.cnblogs.com/pygo/p/12323609.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!