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检测远程udp端口是否打开的方法
Mar 14 Python
详解Python的Django框架中inclusion_tag的使用
Jul 21 Python
django+js+ajax实现刷新页面的方法
May 22 Python
pandas 透视表中文字段排序方法
Nov 16 Python
Python线程之定位与销毁的实现
Feb 17 Python
Python logging设置和logger解析
Aug 28 Python
Pytorch to(device)用法
Jan 08 Python
python、PyTorch图像读取与numpy转换实例
Jan 13 Python
Tensorflow实现多GPU并行方式
Feb 03 Python
屏蔽Django admin界面添加按钮的操作
Mar 11 Python
opencv 图像滤波(均值,方框,高斯,中值)
Jul 08 Python
Python Matplotlib库实现画局部图
Nov 17 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
codeigniter发送邮件并打印调试信息的方法
2015/03/21 PHP
Linux系统下PHP-FPM的安装和配置教程
2015/08/17 PHP
JQuery扩展插件Validate 3通过参数设置错误信息
2011/09/05 Javascript
js的表单操作 简单计算器
2011/12/29 Javascript
jQuery学习笔记 更改jQuery对象
2012/09/19 Javascript
jQuery Ajax异步处理Json数据详解
2013/11/05 Javascript
使用jQuery获得内容以及内容的属性
2015/02/26 Javascript
Lab.js初次使用笔记
2015/02/28 Javascript
JavaScript中的Math.E属性使用详解
2015/06/12 Javascript
jQuery版本升级踩坑大全
2016/01/12 Javascript
js+html5实现侧滑页面效果
2017/07/15 Javascript
关于预加载InstantClick的问题解决方法
2017/09/12 Javascript
微信小程序在地图选择地址并返回经纬度简单示例
2018/12/03 Javascript
webstorm建立vue-cli脚手架的傻瓜式教程
2020/09/22 Javascript
Python中input和raw_input的一点区别
2014/10/21 Python
Python selenium根据class定位页面元素的方法
2019/02/26 Python
详解Python的循环结构知识点
2019/05/20 Python
django框架CSRF防护原理与用法分析
2019/07/22 Python
pytorch中的自定义反向传播,求导实例
2020/01/06 Python
python GUI库图形界面开发之PyQt5控件QTableWidget详细使用方法与属性
2020/02/25 Python
Python实现屏幕录制功能的代码
2020/03/02 Python
windows、linux下打包Python3程序详细方法
2020/03/17 Python
Python如何通过百度翻译API实现翻译功能
2020/04/02 Python
浅谈keras中自定义二分类任务评价指标metrics的方法以及代码
2020/06/11 Python
python语言的优势是什么
2020/06/17 Python
通俗易懂了解Python装饰器原理
2020/09/17 Python
运行python提示no module named sklearn的解决方法
2020/11/29 Python
详解HTML5新增标签
2017/11/27 HTML / CSS
广州地球村科技数据库题目
2016/04/25 面试题
修理厂厂长岗位职责
2014/01/30 职场文书
员工安全生产承诺书
2014/05/22 职场文书
2014年音乐教师工作总结
2014/12/03 职场文书
考研英语复习计划
2015/01/19 职场文书
幼儿园中班教育随笔
2015/08/14 职场文书
导游词之山东八仙过海景区
2019/11/11 职场文书
go语言中GOPATH GOROOT的作用和设置方式
2021/05/05 Golang