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数据结构之二叉树的遍历实例
Apr 29 Python
Python中用Descriptor实现类级属性(Property)详解
Sep 18 Python
python通过邮件服务器端口发送邮件的方法
Apr 30 Python
Python中用于转换字母为小写的lower()方法使用简介
May 19 Python
Python正则表达式非贪婪、多行匹配功能示例
Aug 08 Python
Python实现Kmeans聚类算法
Jun 10 Python
python中类的属性和方法介绍
Nov 27 Python
Python 实现数据结构-循环队列的操作方法
Jul 17 Python
使用Python实现分别输出每个数组
Dec 06 Python
python手写均值滤波
Feb 19 Python
python 对一幅灰度图像进行直方图均衡化
Oct 27 Python
python+selenium爬取微博热搜存入Mysql的实现方法
Jan 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
《Re:从零开始的异世界生活 冰结之绊》
2020/04/09 日漫
php中时间轴开发(刚刚、5分钟前、昨天10:23等)
2011/10/03 PHP
PHP分多步骤填写发布信息的简单方法实例代码
2012/09/23 PHP
PHP实现的回溯算法示例
2017/08/15 PHP
使用PHP+MySql实现微信投票功能实例代码
2017/09/29 PHP
PHP小白必须要知道的php基础知识(超实用)
2017/10/10 PHP
javascript 屏蔽鼠标键盘的几段代码
2008/01/02 Javascript
JavaScript中的常见问题解决方法(乱码,IE缓存,代理)
2013/11/28 Javascript
一种新的javascript对象创建方式Object.create()
2015/12/28 Javascript
Bootstrap3制作图片轮播效果
2016/05/12 Javascript
JS中用childNodes获取子元素换行会产生一个子元素
2016/12/08 Javascript
浅谈webpack打包过程中因为图片的路径导致的问题
2018/02/21 Javascript
使用Angular-CLI构建NPM包的方法
2018/09/07 Javascript
vue中添加与删除关键字搜索功能
2019/10/12 Javascript
浅谈Webpack4 Tree Shaking 终极优化指南
2019/11/18 Javascript
js实现直播点击飘心效果
2020/08/19 Javascript
在vue中配置不同的代理同时访问不同的后台操作
2020/09/11 Javascript
在Vue中使用mockjs代码实例
2020/11/25 Vue.js
python模块restful使用方法实例
2013/12/10 Python
天翼开放平台免费短信验证码接口使用实例
2013/12/18 Python
python3生成随机数实例
2014/10/20 Python
Python scipy的二维图像卷积运算与图像模糊处理操作示例
2019/09/06 Python
python3实现从kafka获取数据,并解析为json格式,写入到mysql中
2019/12/23 Python
python字符串,元组,列表,字典互转代码实例详解
2020/02/14 Python
python3+selenium获取页面加载的所有静态资源文件链接操作
2020/05/04 Python
Python bisect模块原理及常见实例
2020/06/17 Python
Python趣味实例,实现一个简单的抽奖刮刮卡
2020/07/18 Python
Python定时任务APScheduler安装及使用解析
2020/08/07 Python
css3使用animation属性实现炫酷效果(推荐)
2020/02/04 HTML / CSS
HTML5手指下滑弹出负一屏阻止移动端浏览器内置下拉刷新功能的实现代码
2020/04/10 HTML / CSS
教学督导岗位职责
2015/04/10 职场文书
2015年高三毕业班班主任工作总结
2015/10/22 职场文书
2016全国“质量月”活动标语口号
2015/12/26 职场文书
《花钟》教学反思
2016/02/17 职场文书
Python机器学习之基于Pytorch实现猫狗分类
2021/06/08 Python
Python采集爬取京东商品信息和评论并存入MySQL
2022/04/12 Python