python装饰器代替set get方法实例


Posted in Python onDecember 19, 2019

对于变量的访问和设置,我们可以使用get、set方法,如下:

class student:
  def __init__(self,name):
    self.__name = name

  def get_name(self):
    return self.__name

  def set_name(self,name):
    self.__name = name

我们也可以使用python 的装饰器,用@语法糖,使得我们要使用set get功能时只需要通过.xx的形式即可

class student1:
  def __init__(self,name):
    self.__name = name

  @property
  def name(self):
    return self.__name 

  @name.setter#x.setter这里要和方法名相同
  def name(self,name):
    self.__name = name
std1 = student1("wdng")
print(std1.name)
std1.name ="wand"
print(std1.name)
>>
wdng
wand

要注意,上述代码中的self.__name,不可以写成 self.name 不是访问域限制的问题,而是用@property后,name方法被变成了class中的一个属性,属性名即方法命,属性命名不可以重复。

可以用hasattr(obj,property_name)来查看类是否包含某属性

以上这篇python装饰器代替set get方法实例就是小编分享给大家的全部内容了,希望能给大家一个参考,也希望大家多多支持三水点靠木。

Python 相关文章推荐
Python中的魔法方法深入理解
Jul 09 Python
Python实现列表转换成字典数据结构的方法
Mar 11 Python
python模块简介之有序字典(OrderedDict)
Dec 01 Python
Python 正则表达式入门(初级篇)
Dec 07 Python
对python For 循环的三种遍历方式解析
Feb 01 Python
python实现复制大量文件功能
Aug 31 Python
Python 实现数组相减示例
Dec 27 Python
keras-siamese用自己的数据集实现详解
Jun 10 Python
opencv 图像轮廓的实现示例
Jul 08 Python
Python延迟绑定问题原理及解决方案
Aug 04 Python
python如何利用Mitmproxy抓包
Oct 10 Python
python和C++共享内存传输图像的示例
Oct 27 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
Python函数参数类型及排序原理总结
Dec 19 #Python
You might like
php中explode与split的区别介绍
2012/10/03 PHP
PHP自带函数给数字或字符串自动补齐位数
2014/07/29 PHP
php导出CSV抽象类实例
2014/09/24 PHP
JavaScript 三种创建对象的方法
2009/10/16 Javascript
jquery.validate使用攻略 第三部
2010/07/01 Javascript
javascript权威指南 学习笔记之null和undefined
2011/09/25 Javascript
jquery如何实现在加载完iframe的内容后再进行操作
2013/09/10 Javascript
js实现类似新浪微博首页内容渐显效果的方法
2015/04/10 Javascript
Bootstrap源码解读按钮(5)
2016/12/23 Javascript
bootstrap导航条实现代码
2016/12/28 Javascript
完美解决spring websocket自动断开连接再创建引发的问题
2017/03/02 Javascript
js实现图片放大展示效果
2017/08/30 Javascript
koa2使用ejs和nunjucks作为模板引擎的使用
2018/11/27 Javascript
JavaScript实现的联动菜单特效示例
2019/07/08 Javascript
vue-cli在 history模式下的配置详解
2019/11/26 Javascript
解决Element中el-date-picker组件不回填的情况
2020/11/07 Javascript
Django进阶之CSRF的解决
2018/08/01 Python
使用python 的matplotlib 画轨道实例
2020/01/19 Python
解决Tensorflow占用GPU显存问题
2020/02/03 Python
python读取与处理netcdf数据方式
2020/02/14 Python
python递归函数求n的阶乘,优缺点及递归次数设置方式
2020/04/02 Python
使用keras实现非线性回归(两种加激活函数的方式)
2020/07/05 Python
python读取excel数据并且画图的实现示例
2021/02/08 Python
CSS3只让背景图片旋转180度的实现示例
2021/03/09 HTML / CSS
html5使用canvas画三角形
2014/12/15 HTML / CSS
阿迪达斯丹麦官网:adidas丹麦
2016/10/01 全球购物
ONLY德国官方在线商店:购买时尚女装
2017/09/21 全球购物
英国50岁以上人群的交友网站:Ourtime
2018/03/28 全球购物
美国领先的在线旅游网站:Orbitz
2018/11/05 全球购物
软件配置管理有什么好处
2015/04/15 面试题
超市开业庆典策划方案
2014/05/14 职场文书
财务会计实训报告
2014/11/05 职场文书
2015年小学英语教师工作总结
2015/05/12 职场文书
春风化雨观后感
2015/06/11 职场文书
你真的了解redis为什么要提供pipeline功能
2021/06/22 Redis
Python matplotlib安装以及实现简单曲线的绘制
2022/04/26 Python