python装饰器setter实现原理_python中property和setter装饰器用法

作用:调用方法改为调用对象, 比如 : p.set_name() 改为 p.set_name

区别:前者改变get方法,后者改变set方法

效果图:

20191219144243.jpg

代码:

class Person:

def __init__(self,name):

self._name = name

def get_name(self):

return self._name

def set_name(self,name):

self._name = name

p = Person('小黑')

print(p.get_name())

p.set_name('小灰')

print(p.get_name())

class Person:

def __init__(self,name):

self._name = name

# 利用property装饰器将获取name方法转换为获取对象的属性

@property

def get_name(self):

return self._name

# 利用property装饰器将设置name方法转换为获取对象的属性

@get_name.setter

def set_name(self,name):

self._name = name

p = Person('小黑')

print(p.get_name) # 原 p.get_name() , 现 p.get_name

p.set_name = '小灰' # 原 p.set_name('小灰') ,现 p.set_name = '小灰'

print(p.get_name)

标准写法:

效果图:

20191219144254.jpg

代码:

# property装饰器

# 作用: 将一个get方法转换为对象的属性。 就是 调用方法改为调用对象

# 使用条件: 必须和属性名一样

# setter方法的装饰器:

# 作用:将一个set方法转换为对象的属性。 就是 a调用方法改为调用对象

# 使用方法:@属性名.setter

class Person:

def __init__(self,name):

self._name = name

# 利用property装饰器将获取name方法转换为获取对象的属性

@property

def name(self):

return self._name

# 利用property装饰器将设置name方法转换为获取对象的属性

@name.setter

def name(self,name):

self._name = name

p = Person('小黑')

print(p.name) # 原获取 p.name() , 现 p.name

p.name = '小灰' # 原设置 p.name('小灰') ,现 p.name = '小灰'

print(p.name)

以上这篇python中property和setter装饰器用法就是小编分享给大家的全部内容了,希望能给大家一个参考,也希望大家多多支持我们。

本文标题: python中property和setter装饰器用法

本文地址: http://www.cppcns.com/jiaoben/python/293991.html

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值