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模块学习 re 正则表达式
May 19 Python
paramiko模块安装和使用(远程登录服务器)
Jan 27 Python
python网络编程学习笔记(10):webpy框架
Jun 09 Python
python简单文本处理的方法
Jul 10 Python
浅谈pandas中Dataframe的查询方法([], loc, iloc, at, iat, ix)
Apr 10 Python
Python 实现网页自动截图的示例讲解
May 17 Python
Python实用技巧之利用元组代替字典并为元组元素命名
Jul 11 Python
详解多线程Django程序耗尽数据库连接的问题
Oct 08 Python
python实现远程控制电脑
May 23 Python
Python中IP地址处理IPy模块的方法
Aug 16 Python
Pycharm插件(Grep Console)自定义规则输出颜色日志的方法
May 27 Python
python使用pymysql模块操作MySQL
Jun 16 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与C#分别格式化文件大小的代码
2011/05/14 PHP
PHP删除数组中的特定元素的代码
2012/06/28 PHP
Apache下禁止php文件被直接访问的解决方案
2013/04/25 PHP
利用php+mcDropdown实现文件路径可在下拉框选择
2013/08/07 PHP
Zend Framework教程之分发器Zend_Controller_Dispatcher用法详解
2016/03/07 PHP
Javascript客户端脚本的设计和应用
2006/08/21 Javascript
prototype1.4中文手册
2006/09/22 Javascript
Stop SQL Server
2007/06/21 Javascript
JavaScript面向对象之静态与非静态类
2010/02/03 Javascript
js移除事件 js绑定事件实例应用
2012/11/28 Javascript
javascript游戏开发之《三国志曹操传》零部件开发(四)用地图块拼成大地图
2013/01/23 Javascript
jquery实现多级下拉菜单的实例代码
2013/10/02 Javascript
兼容所有浏览器的js复制插件Zero使用介绍
2014/03/19 Javascript
jquery实现可拖拽弹出层特效
2015/01/04 Javascript
jQuery第一次运行页面默认触发点击事件的实例
2018/01/10 jQuery
layui复选框的全选与取消实现方法
2019/09/02 Javascript
JavaScript原型式继承实现方法
2019/11/06 Javascript
JavaScript实现猜数字游戏
2020/05/20 Javascript
Python3的urllib.parse常用函数小结(urlencode,quote,quote_plus,unquote,unquote_plus等)
2016/09/18 Python
python下setuptools的安装详解及No module named setuptools的解决方法
2017/07/06 Python
解决python写入mysql中datetime类型遇到的问题
2018/06/21 Python
一百行python代码将图片转成字符画
2021/02/19 Python
pyqt5 实现在别的窗口弹出进度条
2019/06/18 Python
如何不用安装python就能在.NET里调用Python库
2019/07/12 Python
python 获取sqlite3数据库的表名和表字段名的实例
2019/07/17 Python
Django组件content-type使用方法详解
2019/07/19 Python
python 已知一个字符,在一个list中找出近似值或相似值实现模糊匹配
2020/02/29 Python
Pycharm的Available Packages为空的解决方法
2020/09/18 Python
localStorage 设置过期时间的方法实现
2018/12/21 HTML / CSS
最受欢迎的自我评价
2013/12/22 职场文书
演讲稿开场白台词
2014/08/25 职场文书
2014年职称评定工作总结
2014/11/26 职场文书
2014年学生管理工作总结
2014/12/20 职场文书
汉字听写大会观后感
2015/06/12 职场文书
Javascript中的解构赋值语法详解
2021/04/02 Javascript
Python打包exe时各种异常处理方案总结
2021/05/18 Python