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实现删除Android工程中的冗余字符串
Jan 19 Python
Python中实现结构相似的函数调用方法
Mar 10 Python
python 内置函数filter
Jun 01 Python
python中yaml配置文件模块的使用详解
Apr 27 Python
python和shell监控linux服务器的详细代码
Jun 22 Python
Python读取excel中的图片完美解决方法
Jul 27 Python
浅谈python str.format与制表符\t关于中文对齐的细节问题
Jan 14 Python
新手入门Python编程的8个实用建议
Jul 12 Python
python+opencv像素的加减和加权操作的实现
Jul 14 Python
Python的缺点和劣势分析
Nov 19 Python
Python图像处理库PIL的ImageEnhance模块使用介绍
Feb 26 Python
pandas读取csv文件提示不存在的解决方法及原因分析
Apr 21 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
Oracle Faq(Oracle的版本)
2006/10/09 PHP
无数据库的详细域名查询程序PHP版(2)
2006/10/09 PHP
php警告Creating default object from empty value 问题的解决方法
2014/04/02 PHP
PHP中array_keys和array_unique函数源码的分析
2016/02/26 PHP
PHP实现求连续子数组最大和问题2种解决方法
2017/12/26 PHP
Laravel框架执行原生SQL语句及使用paginate分页的方法
2018/08/17 PHP
PHP lcfirst()函数定义与用法
2019/03/08 PHP
javascript 计算两个整数的百分比值
2009/12/26 Javascript
Javascript 入门基础学习
2010/03/10 Javascript
jQuery EasyUI API 中文文档 - Documentation 文档
2011/09/29 Javascript
js中同步与异步处理的方法和区别总结
2013/12/25 Javascript
jQuery写fadeTo示例代码
2014/02/21 Javascript
使用jquery.qrcode生成彩色二维码实例
2014/08/08 Javascript
Javascript毫秒数用法实例
2015/02/05 Javascript
JS实现表单中checkbox对勾选中增加边框显示效果
2015/08/21 Javascript
Zero Clipboard实现浏览器复制到剪贴板的方法(多个复制按钮)
2016/03/24 Javascript
Jquery attr()方法 属性赋值和属性获取详解
2016/04/15 Javascript
浅谈JS之iframe中的窗口
2016/09/13 Javascript
jquery append与appendTo方法比较
2017/05/24 jQuery
vue2.0 如何把子组件的数据传给父组件(推荐)
2018/01/15 Javascript
微信小程序Echarts覆盖正常组件问题解决
2019/07/13 Javascript
[01:03:22]LGD vs OG 2018国际邀请赛淘汰赛BO3 第一场 8.25
2018/08/29 DOTA
带你了解python装饰器
2017/06/15 Python
python网络应用开发知识点浅析
2019/05/28 Python
Python 使用 docopt 解析json参数文件过程讲解
2019/08/13 Python
基于matplotlib xticks用法详解
2020/04/16 Python
Python headers请求头如何实现快速添加
2020/11/03 Python
微软开源最强Python自动化神器Playwright(不用写一行代码)
2021/01/05 Python
信息管理专业推荐信
2013/10/29 职场文书
上课迟到检讨书
2014/01/19 职场文书
2015年远程教育工作总结
2015/05/20 职场文书
高考1977观后感
2015/06/04 职场文书
交通事故责任认定书
2015/08/06 职场文书
使用Html+Css实现简易导航栏功能(导航栏遇到鼠标切换背景颜色)
2021/04/07 HTML / CSS
SQL Server中锁的用法
2022/05/20 SQL Server
CentOS7设置ssh服务以及端口修改方式
2022/12/24 Servers