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多线程ctrl+c退出问题解决方案
Oct 23 Python
python抓取最新博客内容并生成Rss
May 17 Python
Python中MySQLdb和torndb模块对MySQL的断连问题处理
Nov 09 Python
Python基于递归算法实现的走迷宫问题
Aug 04 Python
Php多进程实现代码
May 07 Python
Python中的单行、多行、中文注释方法
Jul 19 Python
详解python中的线程与线程池
May 10 Python
用python3 urllib破解有道翻译反爬虫机制详解
Aug 14 Python
python 读写文件包含多种编码格式的解决方式
Dec 20 Python
python 解决cv2绘制中文乱码问题
Dec 23 Python
Python图像阈值化处理及算法比对实例解析
Jun 19 Python
python开发一个解析protobuf文件的简单编译器
Nov 17 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
德生PL550的电路分析
2021/03/02 无线电
phpwind中的数据库操作类
2007/01/02 PHP
php 正则匹配函数体
2009/08/25 PHP
php中使用addslashes函数报错问题的解决方法
2013/02/06 PHP
PHP中使用file_get_contents抓取网页中文乱码问题解决方法
2014/12/17 PHP
php将文本文件转换csv输出的方法
2014/12/31 PHP
使用ltrace工具跟踪PHP库函数调用的方法
2016/04/25 PHP
PHP中利用sleep函数实现定时执行功能实现代码
2016/08/25 PHP
Laravel 登录后清空COOKIE的操作方法
2019/10/14 PHP
php下的原生ajax请求用法实例分析
2020/02/28 PHP
jQuery实现瀑布流的取巧做法分享
2015/01/12 Javascript
js生成验证码并直接在前端判断
2015/05/15 Javascript
JavaScript实现自动消除按钮功能的方法
2015/08/05 Javascript
jquery实现超简洁的TAB选项卡效果代码
2015/08/28 Javascript
JavaScript实现下拉菜单的显示和隐藏
2016/01/05 Javascript
Bootstrap每天必学之折叠
2016/04/12 Javascript
JavaScript字符串检索字符的方法
2017/06/23 Javascript
微信小程序中post方法与get方法的封装
2017/09/26 Javascript
使用vue如何构建一个自动建站项目
2018/02/05 Javascript
JavaScript对象拷贝与Object.assign用法实例分析
2018/06/20 Javascript
浅谈super-vuex使用体验
2018/06/25 Javascript
vue动态设置img的src路径实例
2018/09/18 Javascript
vue实现购物车选择功能
2020/01/10 Javascript
处理JavaScript值为undefined的7个小技巧
2020/07/28 Javascript
[03:11]DOTA2上海特锦赛小组赛第一日recap精彩回顾
2016/02/28 DOTA
python退出命令是什么?详解python退出方法
2018/12/10 Python
Python 中的参数传递、返回值、浅拷贝、深拷贝
2019/06/25 Python
Python中的延迟绑定原理详解
2019/10/11 Python
python实现对变位词的判断方法
2020/04/05 Python
python爬虫把url链接编码成gbk2312格式过程解析
2020/06/08 Python
用python查找统一局域网下ip对应的mac地址
2021/01/13 Python
求职信写作要突出重点
2014/01/01 职场文书
投资意向书范本
2014/04/01 职场文书
一份文言文检讨书
2014/09/13 职场文书
2015年酒店服务员工作总结
2015/05/18 职场文书
windows安装 redis 6.2.6最新步骤详解
2022/04/26 Redis