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 相关文章推荐
PyCharm使用教程之搭建Python开发环境
Jun 07 Python
python自定义异常实例详解
Jul 11 Python
Python单体模式的几种常见实现方法详解
Jul 28 Python
python装饰器实例大详解
Oct 25 Python
python下10个简单实例代码
Nov 15 Python
Ubuntu16.04/树莓派Python3+opencv配置教程(分享)
Apr 02 Python
Python3随机漫步生成数据并绘制
Aug 27 Python
Python3爬虫之urllib携带cookie爬取网页的方法
Dec 28 Python
Python django框架输入汉字,数字,字符生成二维码实现详解
Sep 24 Python
django 模版关闭转义方式
May 14 Python
Numpy中np.random.rand()和np.random.randn() 用法和区别详解
Oct 23 Python
Python爬取某平台短视频的方法
Feb 08 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中上传大体积文件时需要的设置
2006/10/09 PHP
深入PHP操作MongoDB的技术总结
2013/06/02 PHP
php 输入输出流详解及示例代码
2016/08/25 PHP
cookie.js 加载顺序问题怎么才有效
2013/07/31 Javascript
js的匿名函数使用介绍
2013/12/11 Javascript
jQuery+ajax实现鼠标单击修改内容的思路
2014/06/29 Javascript
jQuery获取选中内容及设置元素属性的方法
2014/07/09 Javascript
JavaScript数据类型之基本类型和引用类型的值
2015/04/01 Javascript
js实现人民币大写金额形式转换
2016/04/27 Javascript
jquery自适应布局的简单实例
2016/05/28 Javascript
原生js实现tab选项卡切换
2020/03/23 Javascript
JavaScript中原型链存在的问题解析
2016/09/25 Javascript
JS 中使用Promise 实现红绿灯实例代码(demo)
2017/10/20 Javascript
微信小程序class封装http代码实例
2019/08/24 Javascript
Flexible.js可伸缩布局实现方法详解
2020/11/13 Javascript
详解React路由传参方法汇总记录
2020/11/29 Javascript
[01:04:31]DOTA2-DPC中国联赛定级赛 iG vs Magma BO3第二场 1月8日
2021/03/11 DOTA
Python二维码生成库qrcode安装和使用示例
2014/12/16 Python
Python使用requests发送POST请求实例代码
2018/01/25 Python
python将字符串以utf-8格式保存在txt文件中的方法
2018/10/30 Python
python关于矩阵重复赋值覆盖问题的解决方法
2019/07/19 Python
使用python求斐波那契数列中第n个数的值示例代码
2020/07/26 Python
matplotlib部件之套索Lasso的使用
2021/02/24 Python
CSS3制作翻转效果_动力节点Java学院整理
2017/07/11 HTML / CSS
Kathmandu澳洲户外商店:新西兰户外运动品牌
2017/11/12 全球购物
The Outnet亚太地区:折扣设计师时装店
2019/12/05 全球购物
Berghaus官网:户外服装和设备,防水服
2020/01/17 全球购物
高中升旗仪式演讲稿
2014/09/09 职场文书
2014坚持党风廉政建设思想汇报
2014/09/18 职场文书
大学生实习证明范文(5篇)
2014/09/18 职场文书
2014年减负工作总结
2014/12/10 职场文书
2014年路政工作总结
2014/12/10 职场文书
朋友聚会开场白
2015/06/01 职场文书
八年级作文之我的母亲
2019/12/10 职场文书
anaconda python3.8安装后降级
2021/06/11 Python
浅谈Java父子类加载顺序
2021/08/04 Java/Android