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展示动态规则法用以解决重叠子问题的示例
Apr 02 Python
给你选择Python语言实现机器学习算法的三大理由
Nov 15 Python
Python实现的自定义多线程多进程类示例
Mar 23 Python
python 重定向获取真实url的方法
May 11 Python
浅谈Python2、Python3相对路径、绝对路径导入方法
Jun 22 Python
Python assert语句的简单使用示例
Jul 28 Python
pycharm修改文件的默认打开方式的步骤
Jul 29 Python
python栈的基本定义与使用方法示例【初始化、赋值、入栈、出栈等】
Oct 24 Python
Python基础之函数基本用法与进阶详解
Jan 02 Python
python uuid生成唯一id或str的最简单案例
Jan 13 Python
详解Python 3.10 中的新功能和变化
Apr 28 Python
python对文档中元素删除,替换操作
Apr 02 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 文件写入和读取操作实例详解【必看篇】
2019/11/04 PHP
JavaScript高级程序设计(第3版)学习笔记13 ECMAScript5新特性
2012/10/11 Javascript
页面js遇到乱码问题的解决方法是和无法转码的情况
2014/04/30 Javascript
JS常用表单验证方法总结
2014/05/22 Javascript
JS数组(Array)处理函数整理
2014/12/07 Javascript
jQuery 中DOM 操作详解
2015/01/13 Javascript
jQuery实现表格展开与折叠的方法
2015/05/04 Javascript
js获取所有checkbox的值的简单实例
2016/05/30 Javascript
关于JS变量和作用域详解
2016/07/28 Javascript
form+iframe解决跨域上传文件的方法
2016/11/18 Javascript
JSON 数据详解及实例代码分析
2017/01/20 Javascript
SVG描边动画
2017/02/23 Javascript
JavaScript数据结构之二叉树的查找算法示例
2017/04/13 Javascript
javascript中json对象json数组json字符串互转及取值方法
2017/04/19 Javascript
深入理解Vue2.x的虚拟DOM diff原理
2017/09/27 Javascript
Vue 中axios配置实例详解
2018/07/27 Javascript
Node.js动手撸一个静态资源服务器的方法
2019/03/09 Javascript
vue 实现滚动到底部翻页效果(pc端)
2019/07/31 Javascript
[01:09:50]VP vs Pain 2018国际邀请赛小组赛BO2 第二场
2018/08/20 DOTA
[36:43]NB vs Optic 2018国际邀请赛小组赛BO1 B组加赛 8.19
2018/08/21 DOTA
python实现爬虫下载美女图片
2015/07/14 Python
Python jieba库用法及实例解析
2019/11/04 Python
解决pymysql cursor.fetchall() 获取不到数据的问题
2020/05/15 Python
Pytorch 扩展Tensor维度、压缩Tensor维度的方法
2020/09/09 Python
CSS3属性box-sizing使用指南
2014/12/09 HTML / CSS
HTML5和CSS3实例教程总结(推荐)
2016/07/18 HTML / CSS
基于html5 canvas做批改作业的小插件
2020/05/20 HTML / CSS
SIXPAD智能健身仪英国官网:革命性的训练装备品牌
2018/09/27 全球购物
波兰运动鞋网上商店:Distance.pl
2020/07/30 全球购物
如何估计一张表的大小(假设该表中有1万条数据)
2016/03/27 面试题
如何开启linux的ssh服务
2013/06/03 面试题
法人授权委托书格式
2014/04/08 职场文书
幼儿园六一活动总结
2014/08/27 职场文书
2014年财务科工作总结
2014/11/11 职场文书
2016中考冲刺决心书
2015/09/22 职场文书
Vue详细的入门笔记
2021/05/10 Vue.js