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 字符串操作方法大全
Mar 11 Python
Python操作sqlite3快速、安全插入数据(防注入)的实例
Apr 26 Python
python通过正则查找微博@(at)用户的方法
Mar 13 Python
python中实现延时回调普通函数示例代码
Sep 08 Python
Python发送http请求解析返回json的实例
Mar 26 Python
PyQt5实现拖放功能
Apr 25 Python
python3 实现一行输入,空格隔开的示例
Nov 14 Python
利用Python脚本实现自动刷网课
Feb 03 Python
使用python+poco+夜神模拟器进行自动化测试实例
Apr 23 Python
如何解决pycharm调试报错的问题
Aug 06 Python
TensorFlow的环境配置与安装方法
Feb 20 Python
深入理解python多线程编程
Apr 18 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
Discuz 6.0+ 批量注册用户名
2009/09/13 PHP
php 自写函数代码 获取关键字 去超链接
2010/02/08 PHP
php下获取Discuz论坛登录用户名、用户组、用户ID等信息的实现代码
2010/12/29 PHP
深入理解PHP原理之错误抑制与内嵌HTML分析
2011/05/02 PHP
7个超级实用的PHP代码片段
2011/07/11 PHP
通过PHP current函数获取未知字符键名数组第一个元素的值
2013/06/24 PHP
PHP制作用户注册系统
2015/10/23 PHP
PHP实现的网站目录扫描索引工具
2016/09/08 PHP
PHP验证终端类型是否为手机的简单实例
2017/02/07 PHP
js实现点小图看大图效果的思路及示例代码
2013/10/28 Javascript
jquery实现瀑布流效果分享
2014/03/26 Javascript
IE10中flexigrid无法显示数据的解决方法
2015/07/26 Javascript
第五篇Bootstrap 排版
2016/06/21 Javascript
关于Sequelize连接查询时inlude中model和association的区别详解
2017/02/27 Javascript
浅谈Vue 数据响应式原理
2018/05/07 Javascript
vue异步axios获取的数据渲染到页面的方法
2018/08/09 Javascript
python3.6利用pyinstall打包py为exe的操作实例
2018/10/31 Python
在python里协程使用同步锁Lock的实例
2019/02/19 Python
python 利用浏览器 Cookie 模拟登录的用户访问知乎的方法
2019/07/11 Python
Python CSS选择器爬取京东网商品信息过程解析
2020/06/01 Python
土耳其家居建材网站:Koçtaş
2016/11/22 全球购物
Bally巴利英国官网:经典瑞士鞋履、手袋及配饰奢侈品牌
2018/05/07 全球购物
MYPROTEIN澳大利亚官方网站:欧洲运动营养品牌
2019/06/26 全球购物
美国乒乓球设备、配件和服装品牌:Killerspin
2020/06/07 全球购物
中餐厅主管的职责范文
2014/02/04 职场文书
出生公证书样本
2014/04/04 职场文书
二年级评语大全
2014/04/23 职场文书
横幅标语大全
2014/06/17 职场文书
社区文艺活动方案
2014/08/19 职场文书
2015年高考寄语或鼓励的话
2015/03/23 职场文书
银行实习推荐信
2015/03/27 职场文书
离婚纠纷代理词
2015/05/23 职场文书
如何用JS实现网页瀑布流布局
2021/04/24 Javascript
Django项目如何获得SSL证书与配置HTTPS
2021/04/30 Python
golang 实现时间戳和时间的转化
2021/05/07 Golang
为自由献出你的心脏!「进击的巨人展 FINAL」2022年6月在台开展
2022/04/13 日漫