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 相关文章推荐
C#返回当前系统所有可用驱动器符号的方法
Apr 18 Python
python中list列表的高级函数
May 17 Python
详解Python使用tensorflow入门指南
Feb 09 Python
python爬虫获取淘宝天猫商品详细参数
Jun 23 Python
python中实现数组和列表读取一列的方法
Apr 03 Python
python版飞机大战代码分享
Nov 20 Python
python3.4+pycharm 环境安装及使用方法
Jun 13 Python
python3 下载网络图片代码实例
Aug 27 Python
python实现简易学生信息管理系统
Apr 05 Python
python base64库给用户名或密码加密的流程
Jan 02 Python
关于多元线性回归分析——Python&SPSS
Feb 24 Python
关于jupyter打开之后不能直接跳转到浏览器的解决方式
Apr 13 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与ethereum客户端交互
2018/04/28 PHP
用JavaScript隐藏控件的方法
2009/09/21 Javascript
javascript 计算两个整数的百分比值
2009/12/26 Javascript
js为数字添加逗号并格式化数字的代码
2013/08/23 Javascript
angularjs中的e2e测试实例
2014/12/06 Javascript
Bootstrap媒体对象的实现
2016/05/01 Javascript
不同js异步函数同步的实现方法
2016/05/28 Javascript
js鼠标按键事件和键盘按键事件用法实例汇总
2016/10/03 Javascript
移动端脚本框架Hammer.js
2016/12/15 Javascript
Ajax基础知识详解
2017/02/17 Javascript
AngularJS实现根据不同条件显示不同控件
2017/04/20 Javascript
详谈js使用in和hasOwnProperty获取对象属性的区别
2017/04/25 Javascript
微信小程序自定义tabBar组件开发详解
2020/09/24 Javascript
原生JS实现的自动轮播图功能详解
2018/12/28 Javascript
JavaScript跳出循环的三种方法(break, return, continue)
2019/07/30 Javascript
js实现文章目录索引导航(table of content)
2020/05/10 Javascript
[04:27]DOTA2官方论坛水友赛集锦
2013/09/16 DOTA
[39:52]2018DOTA2亚洲邀请赛 4.3 突围赛 EG vs Newbee 第一场
2018/04/04 DOTA
[01:38]女王驾到——至宝魔廷新尊技能&特效展示
2020/06/16 DOTA
[01:03:36]DOTA2-DPC中国联赛 正赛 VG vs Magma BO3 第二场 1月26日
2021/03/11 DOTA
Python语言技巧之三元运算符使用介绍
2013/03/04 Python
Python语言的12个基础知识点小结
2014/07/10 Python
使用Python做定时任务及时了解互联网动态
2019/05/15 Python
python利用re,bs4,requests模块获取股票数据
2019/07/29 Python
PYTHON实现SIGN签名的过程解析
2019/10/28 Python
Pytorch DataLoader 变长数据处理方式
2020/01/08 Python
详解Python中namedtuple的使用
2020/04/27 Python
Python新手学习函数默认参数设置
2020/06/03 Python
Python特殊属性property原理及使用方法解析
2020/10/09 Python
亚洲航空公司官方网站:AirAsia
2019/11/25 全球购物
荷兰家电销售网站:Welhof
2020/12/08 全球购物
教学改革问题查摆整改措施
2014/09/27 职场文书
个人债务授权委托书范本
2014/10/05 职场文书
统计员岗位职责
2015/02/11 职场文书
员工辞退通知书
2015/04/17 职场文书
董事长秘书工作总结
2015/08/14 职场文书