python中property和setter装饰器用法


Posted in Python onDecember 19, 2019

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

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

效果图:

python中property和setter装饰器用法

代码:

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)

标准写法:

效果图:

python中property和setter装饰器用法

代码:

# 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 相关文章推荐
Python实现远程调用MetaSploit的方法
Aug 22 Python
Python3处理文件中每个词的方法
May 22 Python
python 如何快速找出两个电子表中数据的差异
May 26 Python
Python wxPython库使用wx.ListBox创建列表框示例
Sep 03 Python
python使用MQTT给硬件传输图片的实现方法
May 05 Python
[机器视觉]使用python自动识别验证码详解
May 16 Python
pyqt5 键盘监听按下enter 就登陆的实例
Jun 25 Python
django框架两个使用模板实例
Dec 11 Python
Pycharm学生免费专业版安装教程的方法步骤
Sep 24 Python
详解查看Python解释器路径的两种方式
Oct 15 Python
python3处理word文档实例分析
Dec 01 Python
使用python操作lmdb对数据读取的实例
Dec 11 Python
python装饰器代替set get方法实例
Dec 19 #Python
pandas factorize实现将字符串特征转化为数字特征
Dec 19 #Python
Python 解决OPEN读文件报错 ,路径以及r的问题
Dec 19 #Python
简单了解Python3 bytes和str类型的区别和联系
Dec 19 #Python
Python监控服务器实用工具psutil使用解析
Dec 19 #Python
Python使用pymysql模块操作mysql增删改查实例分析
Dec 19 #Python
python 普通克里金(Kriging)法的实现
Dec 19 #Python
You might like
用PHP实现的生成静态HTML速度快类库
2007/03/31 PHP
php echo()和print()、require()和include()函数区别说明
2010/03/27 PHP
PHP基于cookie与session统计网站访问量并输出显示的方法
2016/01/15 PHP
Ajax+PHP实现的分类列表框功能示例
2019/02/11 PHP
广告切换效果(缓动切换)
2009/05/27 Javascript
JQuery 小练习(实例代码)
2009/08/07 Javascript
uploadify在Firefox下丢失session问题的解决方法
2013/08/07 Javascript
jQuery实现鼠标划过修改样式的方法
2015/04/14 Javascript
深入理解JS函数的参数(arguments)的使用
2016/05/28 Javascript
运用js教你轻松制作html音乐播放器
2020/04/17 Javascript
全屏滚动插件fullPage.js使用实例解析
2016/10/21 Javascript
TypeScript入门-接口
2017/03/30 Javascript
jquery仿京东商品放大浏览页面
2017/06/06 jQuery
Vue学习笔记进阶篇之vue-cli安装及介绍
2017/07/18 Javascript
vue 过滤器filter实例详解
2018/03/14 Javascript
Vue作用域插槽slot-scope实例代码
2018/09/05 Javascript
javascript function(函数类型)使用与注意事项小结
2019/06/10 Javascript
JQuery省市联动效果实现过程详解
2020/05/08 jQuery
详解Vue之计算属性
2020/06/20 Javascript
JavaScript事件概念详解(区分静态注册和动态注册)
2021/02/05 Javascript
Python3中的json模块使用详解
2018/05/05 Python
Python数据可视化:顶级绘图库plotly详解
2019/12/07 Python
Python FtpLib模块应用操作详解
2019/12/12 Python
TFRecord文件查看包含的所有Features代码
2020/02/17 Python
中国茶叶、茶具一站式网上购物商城:醉品茶城
2018/07/03 全球购物
Piercing Pagoda官网:耳环、戒指、项链、手链等
2020/09/28 全球购物
2019年Java面试必问之经典试题
2012/09/12 面试题
高校辅导员推荐信范文
2013/12/25 职场文书
校园网站的创业计划书范文
2013/12/30 职场文书
承办会议欢迎词
2014/01/17 职场文书
师范学院美术系毕业生自我鉴定
2014/01/29 职场文书
学生期末评语大全
2014/04/30 职场文书
2015年员工工作表现评语
2015/03/25 职场文书
2016年教师学习教师法心得体会
2016/01/20 职场文书
Django对接elasticsearch实现全文检索的示例代码
2021/08/02 Python
IDEA 2022 Translation 未知错误 翻译文档失败
2022/04/24 Java/Android