Python私有属性@property方法

# 把得到的属性值的方法上@property
# 在设置属性值的方法上@属性名.setter
# 两个方法的名字一致,都是属性名
#先写@property再写@属性名.setter
class Person(object):
def __init__(self,name,age):
#在定义对象属性的时候,私有属性不加__
self.name = name
self.age = age
@property
#相当于getName()方法
def name(self):
return self.__name
#但是返回的时候还是要self.__私有属性名

@name.setter#相当于setName()方法
def name(self,name):
if len(name) > 6:
print("非法")
else:
self.__name = name
#赋值的时候也要self.__属性名 = 属性名

p1 = Person("张三12358",13)
print(p1.name)

'''
总结:1、在定义对象属性的时候不需要在对象属性加__
2、要先定义@property相当于get方法
3、再定义@属性名.setter相当于set方法
4、在对象调用的时候直接是对象名.属性名
'''
注意:这种方法设置私有属性,在创建对象实例初始化赋值时就会调用@属性名.setter方法过滤数据

转载于:https://www.cnblogs.com/guojie-guojie/p/9268467.html

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值