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求斐波那契数列示例分享
Feb 14 Python
Python的Flask框架中实现登录用户的个人资料和头像的教程
Apr 20 Python
Python中MySQLdb和torndb模块对MySQL的断连问题处理
Nov 09 Python
Python的Twisted框架上手前所必须了解的异步编程思想
May 25 Python
python常用函数详解
Sep 13 Python
详解Django的CSRF认证实现
Oct 09 Python
解决Pycharm运行时找不到文件的问题
Oct 29 Python
在python3中实现更新界面
Feb 21 Python
python中sympy库求常微分方程的用法
Apr 28 Python
python脚本第一行如何写
Aug 30 Python
Python实现我的世界小游戏源代码
Mar 02 Python
Python下opencv使用hough变换检测直线与圆
Jun 18 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
在JavaScript中调用php程序
2009/03/09 PHP
JavaScript与HTML结合的基本使用方法整理
2015/10/12 PHP
php微信公众平台交互与接口详解
2016/11/28 PHP
PHP的PDO预定义常量讲解
2019/01/24 PHP
PHP的PDO大对象(LOBs)
2019/01/27 PHP
插件:检测javascript的内存泄漏
2007/03/04 Javascript
JavaScript中json对象和string对象之间相互转化
2012/12/26 Javascript
一个简单的JS鼠标悬停特效具体方法
2013/06/17 Javascript
ExtJS4 动态生成的grid导出为excel示例
2014/05/02 Javascript
jquery根据锚点offset值实现动画切换
2014/09/11 Javascript
超级简单实现JavaScript MVC 样式框架
2015/03/24 Javascript
JS实现两表格里数据来回转移的方法
2015/05/28 Javascript
javascript实现图片延迟加载方法汇总(三种方法)
2015/08/27 Javascript
jQuery抛物线运动实现方法(附完整demo源码下载)
2016/01/08 Javascript
js利用clipboardData实现截屏粘贴功能
2016/10/12 Javascript
react native与webview通信的示例代码
2017/09/25 Javascript
VueJs监听window.resize方法示例
2018/01/17 Javascript
vue 页面加载进度条组件实例
2018/02/05 Javascript
Vue自定义过滤器格式化数字三位加一逗号实现代码
2018/03/23 Javascript
微信小程序实现全局搜索代码高亮的示例
2018/03/30 Javascript
Vue 全局loading组件实例详解
2018/05/29 Javascript
js如何获取图片url的Blob值并预览示例代码
2019/03/07 Javascript
vue中实现Monaco Editor自定义提示功能
2019/07/05 Javascript
使用Python编写Linux系统守护进程实例
2015/02/03 Python
Python实现telnet服务器的方法
2015/07/10 Python
Python3.2模拟实现webqq登录
2016/02/15 Python
python下调用pytesseract识别某网站验证码的实现方法
2016/06/06 Python
Python切片操作深入详解
2018/07/27 Python
python中元组的用法整理
2020/06/15 Python
Python根据指定文件生成XML的方法
2020/06/29 Python
简单了解Django项目应用创建过程
2020/07/06 Python
Python3+selenium配置常见报错解决方案
2020/08/28 Python
详解HTML5 data-* 自定义属性
2018/01/24 HTML / CSS
英国领先的游戏零售商:GAME
2019/09/24 全球购物
4s店总经理岗位职责
2013/12/31 职场文书
预备党员公开承诺书
2014/05/28 职场文书