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 相关文章推荐
深入理解NumPy简明教程---数组3(组合)
Dec 17 Python
Python实现读取并保存文件的类
May 11 Python
利用python将图片转换成excel文档格式
Dec 30 Python
Python基于多线程操作数据库相关问题分析
Jul 11 Python
Python 实现「食行生鲜」签到领积分功能
Sep 26 Python
朴素贝叶斯Python实例及解析
Nov 19 Python
浅析python的Lambda表达式
Feb 27 Python
使用Python制作缩放自如的圣诞老人(圣诞树)
Dec 25 Python
python统计字符的个数代码实例
Feb 07 Python
python实现简单的购物程序代码实例
Mar 03 Python
python实现一次性封装多条sql语句(begin end)
Jun 06 Python
Django显示可视化图表的实践
May 10 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合并js请求的例子
2013/11/01 PHP
PHP判断FORM表单或URL参数来的数据是否为整数的方法
2016/03/25 PHP
PHP实现通过strace定位故障原因的方法
2018/04/29 PHP
PHP大文件切割上传功能实例分析
2019/07/01 PHP
javascript的offset、client、scroll使用方法详解
2012/12/25 Javascript
解析瀑布流布局:JS+绝对定位的实现
2013/05/08 Javascript
JQuery拖动表头边框线调整表格列宽效果代码
2014/09/10 Javascript
javascript实现无限级select联动菜单
2015/01/02 Javascript
浅谈javascript中执行环境(作用域)与作用域链
2016/12/08 Javascript
Vue2递归组件实现树形菜单
2017/04/10 Javascript
jQuery实现ajax回调函数带入参数的方法示例
2018/06/26 jQuery
vue的for循环使用方法
2019/02/12 Javascript
vue组件定义,全局、局部组件,配合模板及动态组件功能示例
2019/03/19 Javascript
OpenLayers3实现地图显示功能
2020/09/25 Javascript
JavaScript中常用的3种弹出提示框(alert、confirm、prompt)
2020/11/10 Javascript
Pycharm学习教程(6) Pycharm作为Vim编辑器使用
2017/05/03 Python
python-opencv在有噪音的情况下提取图像的轮廓实例
2017/08/30 Python
python实现简易云音乐播放器
2018/01/04 Python
python去掉 unicode 字符串前面的u方法
2018/10/21 Python
Python中flatten( )函数及函数用法详解
2018/11/02 Python
Django对数据库进行添加与更新的例子
2019/07/12 Python
Matplotlib使用字符串代替变量绘制散点图的方法
2020/02/17 Python
日本高端护肤品牌:Tatcha
2016/08/29 全球购物
CheapTickets香港机票预订网站:CheapTickets.hk
2019/06/26 全球购物
枚举和一组预处理的#define有什么不同
2016/09/21 面试题
红旗方阵解说词
2014/02/12 职场文书
社区母亲节活动记录
2014/03/06 职场文书
竞选学生会演讲稿
2014/04/25 职场文书
企业指导教师评语
2014/04/28 职场文书
消防安全宣传标语
2014/06/07 职场文书
文员转正自我鉴定怎么写
2014/09/29 职场文书
以权谋私检举信范文
2015/03/02 职场文书
企业财务管理制度范本
2015/08/04 职场文书
创业项目(超低成本创业项目)
2019/08/16 职场文书
使用Selenium实现微博爬虫(预登录、展开全文、翻页)
2021/04/13 Python
js 实现验证码输入框示例详解
2022/09/23 Javascript