python基于property()函数定义属性


Posted in Python onJanuary 22, 2020

这篇文章主要介绍了python基于property()函数定义属性,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以参考下

正常情况下,类包含的属性应该是隐藏的,只允许通过类提供的方法来间接的实现对类属性的访问和操作。

class Person:
  #构造函数
  def __init__(self, name):
    self.name = name
  #设置name属性值的函数
  def setname(self, name):
    self.name = name
  #访问name属性值的函数
  def getname(self):
    return self.name
  #删除name属性值的函数
  def delname(self):
    self.name = "xxx"
xiaobai = Person("xiaobai")
#获取name属性值
print(xiaobai.getname())
#设置name属性值
xiaobai.setname("xiaohei")
print(xiaobai.getname())
#删除name属性值
xiaobai.delname()
print(xiaobai.getname())
xiaobai
xiaohei
xxx

python中提供了property()函数,可以实现在不破坏类封装原则的前提下,让开发者依旧使用“类对象.属性”的方式操作类中的属性。

class Person:
  #构造函数
  def __init__(self, name):
    self.__name = name #双前导下划线(私有属性)会导致解释器重写属性名称,以避免子类中的命名冲突
  #设置name属性值的函数
  def setname(self, name):
    self.__name = name
  #访问name属性值的函数
  def getname(self):
    return self.__name
  #删除name属性值的函数
  def delname(self):
    self.__name = "xxx"
  #为name属性配置property()函数
  name = property(getname, setname, delname, '说明文档')
#调取说明文档的两种方式
print(Person.name.__doc__)
help(Person.name)
xiaobai = Person("xiaobai")
#获取name属性值
print(xiaobai.name)
#设置name属性值
xiaobai.name = "xiaohei"
print(xiaobai.name)
#删除name属性值
del xiaobai.name
print(xiaobai.name)
说明文档
Help on property:

  说明文档

xiaobai
xiaohei
xxx

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持三水点靠木。

Python 相关文章推荐
python实现监控linux性能及进程消耗性能的方法
Jul 25 Python
python中ConfigParse模块的用法
Sep 29 Python
浅谈python 里面的单下划线与双下划线的区别
Dec 01 Python
python实现图片文件批量重命名
Mar 23 Python
对pandas数据判断是否为NaN值的方法详解
Nov 06 Python
python 判断矩阵中每行非零个数的方法
Jan 26 Python
利用Python+阿里云实现DDNS动态域名解析的方法
Apr 01 Python
python3 自动识别usb连接状态,即对usb重连的判断方法
Jul 03 Python
python列表生成器迭代器实例解析
Dec 19 Python
Python基于类路径字符串获取静态属性
Mar 12 Python
使用keras实现孪生网络中的权值共享教程
Jun 11 Python
Python 串口通信的实现
Sep 29 Python
Python @property装饰器原理解析
Jan 22 #Python
Python底层封装实现方法详解
Jan 22 #Python
tensorboard实现同时显示训练曲线和测试曲线
Jan 21 #Python
使用tensorboard可视化loss和acc的实例
Jan 21 #Python
TensorFlow绘制loss/accuracy曲线的实例
Jan 21 #Python
NumPy统计函数的实现方法
Jan 21 #Python
TensorFlow实现打印每一层的输出
Jan 21 #Python
You might like
用PHP实现WEB动态网页静态
2006/10/09 PHP
PHP类中的魔术方法(Magic Method)简明总结
2014/07/08 PHP
WordPress中访客登陆实现邮件提醒的PHP脚本实例分享
2015/12/14 PHP
PHP+MySQL统计该库中每个表的记录数并按递减顺序排列的方法
2016/02/15 PHP
PHP+MySql+jQuery实现的"顶"和"踩"投票功能
2016/05/21 PHP
PHP asXML()函数讲解
2019/02/03 PHP
PHP微商城开源代码实例
2019/03/27 PHP
silverlight线程与基于事件驱动javascript引擎(实现轨迹回放功能)
2011/08/09 Javascript
JS获取农历日期具体实例
2013/11/14 Javascript
javascript产生随机数方法汇总
2016/01/25 Javascript
JavaScript通过代码调用Flash显示的方法
2016/02/02 Javascript
Angular.js自定义指令学习笔记实例
2017/02/24 Javascript
JS对象创建的几种方式整理
2017/02/28 Javascript
使用jQuery.Pin垂直滚动时固定导航
2017/05/24 jQuery
全面解析jQuery中的$(window)与$(document)的用法区别
2017/08/15 jQuery
在Swiper内如何制作CSS3动画效果示例代码
2017/12/07 Javascript
关于vue中watch检测到不到对象属性的变化的解决方法
2018/02/08 Javascript
浅谈angular4.0中路由传递参数、获取参数最nice的写法
2018/03/12 Javascript
详解TypeScript+Vue 插件 vue-class-component的使用总结
2019/02/18 Javascript
Jquery如何使用animation动画效果改变背景色的代码
2020/07/20 jQuery
Javascript实现贪吃蛇小游戏(含详细注释)
2020/10/23 Javascript
[35:26]DOTA2上海特级锦标赛B组小组赛#2 VG VS Fnatic第三局
2016/02/26 DOTA
Python多线程编程(七):使用Condition实现复杂同步
2015/04/05 Python
Python下的常用下载安装工具pip的安装方法
2015/11/13 Python
pandas中的DataFrame按指定顺序输出所有列的方法
2018/04/10 Python
网络维护管理员的自我评价分享
2013/11/11 职场文书
高三霸气励志标语
2014/06/24 职场文书
教师暑期培训感言
2014/08/15 职场文书
弘扬焦裕禄精神走群众路线思想汇报
2014/09/12 职场文书
励志广播稿300字(5篇)
2014/09/15 职场文书
优秀班主任事迹材料
2014/12/16 职场文书
护士2015年终工作总结
2015/04/29 职场文书
疾病证明书
2015/06/19 职场文书
婚礼领导致辞大全
2015/07/28 职场文书
公司员工奖惩制度
2015/08/04 职场文书
普希金的诗歌赏析(3首)
2019/08/20 职场文书