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 splitlines使用技巧
Sep 06 Python
Python ORM框架SQLAlchemy学习笔记之安装和简单查询实例
Jun 10 Python
Python调用C/C++动态链接库的方法详解
Jul 22 Python
Python基于select实现的socket服务器
Apr 13 Python
python使用matplotlib绘制柱状图教程
Feb 08 Python
python深度优先搜索和广度优先搜索
Feb 07 Python
python 编码规范整理
May 05 Python
python3利用ctypes传入一个字符串类型的列表方法
Feb 12 Python
python tkinter窗口最大化的实现
Jul 15 Python
Python 实现的 Google 批量翻译功能
Aug 26 Python
Python手绘可视化工具cutecharts使用实例
Dec 05 Python
Python Pygame实战之塔防游戏的实现
Mar 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
php解析xml提示Invalid byte 1 of 1-byte UTF-8 sequence错误的处理方法
2013/11/14 PHP
php结合ajax实现赞、顶、踩功能实例
2014/05/12 PHP
PHP中定义数组常量(array常量)的方法
2014/11/17 PHP
PHP分页类集锦
2014/11/18 PHP
PHP使用SOAP扩展实现WebService的方法
2016/04/01 PHP
php 解析xml 的四种方法详细介绍
2016/10/26 PHP
YII框架中搜索分页jQuery写法详解
2016/12/19 PHP
PHP变量的作用范围实例讲解
2020/12/22 PHP
添加JavaScript重载函数的辅助方法2
2010/07/04 Javascript
javascript 禁用IE工具栏,导航栏等等实现代码
2013/04/01 Javascript
用js传递value默认值的示例代码
2014/09/11 Javascript
编写简单的jQuery提示插件
2014/12/21 Javascript
《JavaScript DOM 编程艺术》读书笔记之JavaScript 语法
2015/01/09 Javascript
jQuery实现首页顶部可伸缩广告特效代码
2015/04/15 Javascript
JavaScript实现简单的二级导航菜单实例
2015/04/15 Javascript
webpack将js打包后的map文件详解
2018/02/22 Javascript
vue-router路由懒加载的实现(解决vue项目首次加载慢)
2018/08/28 Javascript
解决Element中el-date-picker组件不回填的情况
2020/11/07 Javascript
python操作MySQL数据库具体方法
2013/10/28 Python
Python中max函数用法实例分析
2015/07/17 Python
python opencv设置摄像头分辨率以及各个参数的方法
2018/04/02 Python
Python3 利用requests 库进行post携带账号密码请求数据的方法
2018/10/26 Python
详解用python实现基本的学生管理系统(文件存储版)(python3)
2019/04/25 Python
python进度条显示之tqmd模块
2020/08/22 Python
纯HTML+CSS3制作导航菜单(附源码)
2013/04/24 HTML / CSS
意大利奢侈品零售商:ilDuomo Novara
2019/09/11 全球购物
戴森西班牙官网:Dyson西班牙
2020/02/04 全球购物
咖啡书吧创业计划书
2014/01/13 职场文书
上课看小说检讨书
2014/02/22 职场文书
二审代理词范文
2015/05/25 职场文书
大学体育课感想
2015/08/10 职场文书
观看禁毒宣传片后的感想
2015/08/11 职场文书
一年级下册数学教学反思
2016/02/16 职场文书
如何书写公司员工保密协议?
2019/06/27 职场文书
Python 高级库15 个让新手爱不释手(推荐)
2021/05/15 Python
js不常见操作运算符总结
2021/11/20 Javascript