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中的list列表数据结构用法
Mar 12 Python
pandas数据清洗,排序,索引设置,数据选取方法
May 18 Python
Django使用Mysql数据库已经存在的数据表方法
May 27 Python
python随机数分布random测试
Aug 27 Python
Python检测数据类型的方法总结
May 20 Python
python基于paramiko将文件上传到服务器代码实现
Jul 08 Python
Python中利用LSTM模型进行时间序列预测分析的实现
Jul 26 Python
jenkins配置python脚本定时任务过程图解
Oct 29 Python
Python关于__name__属性的含义和作用详解
Feb 19 Python
python GUI库图形界面开发之PyQt5下拉列表框控件QComboBox详细使用方法与实例
Feb 27 Python
Xadmin+rules实现多选行权限方式(级联效果)
Apr 07 Python
Pytorch 图像变换函数集合小结
Feb 01 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 中英文语言转换类
2011/09/07 PHP
关于Sphinx创建全文检索的索引介绍
2013/06/25 PHP
ini_set的用法介绍
2014/01/07 PHP
PHP多线程之内部多线程实例分析
2015/03/09 PHP
PHP + plupload.js实现多图上传并显示进度条加删除实例代码
2017/03/06 PHP
php命名空间设计思想、用法与缺点分析
2019/07/17 PHP
JavaScript中创建类/对象的几种方法总结
2013/11/29 Javascript
js格式化时间小结
2014/11/03 Javascript
javascript基本类型详解
2014/11/28 Javascript
基于Jquery代码实现手风琴菜单
2015/11/19 Javascript
JavaScript实现给定时间相加天数的方法
2016/01/25 Javascript
Bootstrap每天必学之警告框插件
2016/04/26 Javascript
jQuery文件上传控件 Uploadify 详解
2016/06/20 Javascript
javascript获取网页各种高宽及位置的方法总结
2016/07/27 Javascript
微信小程序 图片宽度自适应的实现
2017/04/06 Javascript
JS实现生成由字母与数字组合的随机字符串功能详解
2018/05/25 Javascript
JS伪继承prototype实现方法示例
2018/06/20 Javascript
NVM安装nodejs的方法实用步骤
2019/01/16 NodeJs
vue中v-for循环选中点击的元素并对该元素添加样式操作
2020/07/17 Javascript
[02:14]2016国际邀请赛中国区预选赛Ehome晋级之路
2016/07/01 DOTA
介绍Python中的一些高级编程技巧
2015/04/02 Python
python压缩文件夹内所有文件为zip文件的方法
2015/06/20 Python
Python3爬虫全国地址信息
2019/01/05 Python
python opencv 批量改变图片的尺寸大小的方法
2019/06/28 Python
详解Django CAS 解决方案
2019/10/30 Python
python实现图像高斯金字塔的示例代码
2020/12/11 Python
Talbots官网:美国成熟女装品牌
2019/11/15 全球购物
名词解释WEB SERVICE,SOAP,UDDI,WSDL,JAXP,JAXM;JSWDL开发包的介绍。
2012/10/27 面试题
管理站站长岗位职责
2013/11/27 职场文书
同事打架检讨书
2014/02/04 职场文书
家长通知书家长意见
2014/12/30 职场文书
青年文明号创建口号大全
2015/12/25 职场文书
使用canvas实现雪花飘动效果的示例代码
2021/03/30 HTML / CSS
python 如何用terminal输入参数
2021/05/25 Python
电脑开机弹出documents文件夹怎么回事?弹出documents文件夹解决方法
2022/04/08 数码科技
html中两种获取标签内的值的方法
2022/06/10 HTML / CSS