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函数返回多个值的示例方法
Dec 04 Python
使用Python中的greenlet包实现并发编程的入门教程
Apr 16 Python
Python简单获取自身外网IP的方法
Sep 18 Python
python画柱状图--不同颜色并显示数值的方法
Dec 13 Python
Python中new方法的详解
Jan 15 Python
详解Python locals()的陷阱
Mar 26 Python
python装饰器代替set get方法实例
Dec 19 Python
使用Python爬虫库BeautifulSoup遍历文档树并对标签进行操作详解
Jan 25 Python
Python如何将图像音视频等资源文件隐藏在代码中(小技巧)
Feb 16 Python
pytorch 多分类问题,计算百分比操作
Jul 09 Python
Django-silk性能测试工具安装及使用解析
Nov 28 Python
python 破解加密zip文件的密码
Apr 22 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 daddslashes()和 saddslashes()有哪些区别分析
2012/10/26 PHP
php中使用PHPExcel读写excel(xls)文件的方法
2014/09/15 PHP
详解阿里云视频直播PHP-SDK接入教程
2020/07/09 PHP
javascript控制frame,iframe的src属性代码
2009/12/31 Javascript
在一个浏览器里呈现所有浏览器测试结果的前端测试工具的思路
2010/03/02 Javascript
一个JavaScript用逗号分割字符串实例
2014/09/22 Javascript
JS实现探测网站链接的方法【测试可用】
2016/11/08 Javascript
Ajax异步文件上传与NodeJS express服务端处理
2017/04/01 NodeJs
vue子组件使用自定义事件向父组件传递数据
2017/05/27 Javascript
vue+socket.io+express+mongodb 实现简易多房间在线群聊示例
2017/10/21 Javascript
快速解决bootstrap下拉菜单无法隐藏的问题
2018/08/10 Javascript
js根据json数据中的某一个属性来给数据分组的方法
2018/10/08 Javascript
Node.js API详解之 util模块用法实例分析
2020/05/09 Javascript
详解js中的几种常用设计模式
2020/07/16 Javascript
JavaScript实现移动小精灵的案例代码
2020/12/12 Javascript
[02:25]DOTA2英雄基础教程 生死判决瘟疫法师
2013/12/06 DOTA
[49:27]2018DOTA2亚洲邀请赛 4.4 淘汰赛 TNC vs VG 第一场
2018/04/05 DOTA
Python对数据库操作
2016/03/28 Python
Python3 socket同步通信简单示例
2017/06/07 Python
用python实现的线程池实例代码
2018/01/06 Python
在CentOS6上安装Python2.7的解决方法
2018/01/09 Python
Python中那些 Pythonic的写法详解
2019/07/02 Python
tensorflow 只恢复部分模型参数的实例
2020/01/06 Python
美国Randolph太阳镜官网:美国制造的飞行员太阳镜和射击眼镜
2018/06/15 全球购物
Petmate品牌官方网站:宠物用品
2018/11/25 全球购物
荷兰照明、灯具和配件网上商店:dmlights
2019/08/25 全球购物
BSTN意大利:德国街头和运动文化高品质商店
2020/12/22 全球购物
《千年梦圆在今朝》教学反思
2014/02/24 职场文书
担保书格式及范文
2014/04/01 职场文书
个人四风问题对照检查材料思想汇报
2014/10/06 职场文书
国庆节标语大全
2014/10/08 职场文书
新生入学欢迎词
2015/01/26 职场文书
2015年老干部工作总结
2015/04/23 职场文书
少先队工作总结2015
2015/05/13 职场文书
法定代表人免职证明
2015/06/24 职场文书
经典励志格言:每日一句,让你每天充满能量
2019/08/16 职场文书