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遍历C盘dll文件的方法
May 06 Python
在Python的struct模块中进行数据格式转换的方法
Jun 17 Python
python3实现163邮箱SMTP发送邮件
May 22 Python
Python简单过滤字母和数字的方法小结
Jan 09 Python
用python 实现在不确定行数情况下多行输入方法
Jan 28 Python
解决python3插入mysql时内容带有引号的问题
Mar 02 Python
Python实现猜年龄游戏代码实例
Mar 25 Python
python小白切忌乱用表达式
May 29 Python
keras 多任务多loss实例
Jun 22 Python
浅谈多卡服务器下隐藏部分 GPU 和 TensorFlow 的显存使用设置
Jun 30 Python
python smtplib发送多个email联系人的实现
Oct 09 Python
浅谈Python中对象是如何被调用的
Apr 06 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下几个常用的去空、分组、调试数组函数
2009/02/22 PHP
PHP5中虚函数的实现方法分享
2011/04/20 PHP
php5.3提示Function ereg() is deprecated Error问题解决方法
2014/11/12 PHP
php实现上传图片文件代码
2015/07/19 PHP
Laravel 5.3 学习笔记之 错误&日志
2016/08/28 PHP
PHP反射实际应用示例
2019/04/03 PHP
Jquery写一个鼠标拖动效果实现原理与代码
2012/12/24 Javascript
使用CSS样式position:fixed水平滚动的方法
2014/02/19 Javascript
jQuery实现气球弹出框式的侧边导航菜单效果
2015/09/22 Javascript
解决js函数闭包内存泄露问题的办法
2016/01/25 Javascript
js当前页面登录注册框,固定div,底层阴影的实例代码
2016/10/04 Javascript
easyUI实现(alert)提示框自动关闭的实例代码
2016/11/07 Javascript
jQuery生成假加载动画效果
2016/12/01 Javascript
几行js代码实现自适应
2017/02/24 Javascript
jQuery中的on与bind绑定事件区别实例详解
2017/02/28 Javascript
Koa2微信公众号开发之消息管理
2018/05/16 Javascript
微信小程序 调用微信授权窗口相关问题解决
2019/07/25 Javascript
JQuery发送ajax请求时中文乱码问题解决
2019/11/14 jQuery
JavaScript实现英语单词题库
2019/12/24 Javascript
js抽奖转盘实现方法分析
2020/05/16 Javascript
python数据结构之二叉树的遍历实例
2014/04/29 Python
Python使用plotly绘制数据图表的方法
2017/07/18 Python
利用Python写一个爬妹子的爬虫
2018/06/08 Python
Python整数与Numpy数据溢出问题解决
2019/09/11 Python
Python使用循环神经网络解决文本分类问题的方法详解
2020/01/16 Python
基于jupyter代码无法在pycharm中运行的解决方法
2020/04/21 Python
读取nii或nii.gz文件中的信息即输出图像操作
2020/07/01 Python
伦敦高达60%折扣的钻石珠宝商:Purely Diamonds
2018/06/24 全球购物
新西兰最大的天然保健及护肤品网站:HealthPost(直邮中国)
2021/02/13 全球购物
介绍一下JNDI的基本概念
2013/07/26 面试题
四风问题个人对照检查材料
2014/09/26 职场文书
政风行风评议工作总结
2014/10/21 职场文书
2014三年级班主任工作总结
2014/12/05 职场文书
如何把新闻人物写得立体、鲜活?
2019/08/14 职场文书
Nginx中使用Lua脚本与图片的缩略图处理的实现
2022/03/18 Servers
Vue 打包后相对路径的引用问题
2022/06/05 Vue.js