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中open函数的使用
Mar 01 Python
Python编程实现正则删除命令功能
Aug 30 Python
python 寻找优化使成本函数最小的最优解的方法
Dec 28 Python
Django使用HttpResponse返回图片并显示的方法
May 22 Python
详解python的sorted函数对字典按key排序和按value排序
Aug 10 Python
浅析Python函数式编程
Oct 06 Python
Django框架之DRF 基于mixins来封装的视图详解
Jul 23 Python
python飞机大战pygame游戏背景设计详解
Dec 17 Python
python 瀑布线指标编写实例
Jun 03 Python
JAVA及PYTHON质数计算代码对比解析
Jun 10 Python
python 操作excel表格的方法
Dec 05 Python
Python带你从浅入深探究Tuple(基础篇)
May 15 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图片处理之图片旋转和图片翻转实例
2014/11/19 PHP
PHP经典算法集锦【经典收藏】
2016/09/14 PHP
php图片裁剪函数
2018/10/31 PHP
PHP使用gearman进行异步的邮件或短信发送操作详解
2020/02/27 PHP
jquery UI 1.72 之datepicker
2009/12/29 Javascript
WEB 浏览器兼容 推荐收藏
2010/05/14 Javascript
JavaScript学习小结(7)之JS RegExp
2015/11/29 Javascript
jQuery对html元素的取值与赋值实例详解
2015/12/18 Javascript
jQuery使用serialize()表单序列化时出现中文乱码问题的解决办法
2016/07/27 Javascript
深入浅出 jQuery中的事件机制
2016/08/23 Javascript
jQuery基于ajax操作json数据简单示例
2017/01/05 Javascript
学习Vue组件实例
2018/04/28 Javascript
使用json-server简单完成CRUD模拟后台数据的方法
2018/07/12 Javascript
JavaScript原型链与继承操作实例总结
2018/08/24 Javascript
详解webpack打包第三方类库的正确姿势
2018/10/20 Javascript
jQuery 选择器用法实例分析【prev + next】
2020/05/22 jQuery
python网络编程学习笔记(九):数据库客户端 DB-API
2014/06/09 Python
python里使用正则表达式的组嵌套实例详解
2017/10/24 Python
Python实现的径向基(RBF)神经网络示例
2018/02/06 Python
python随机数分布random测试
2018/08/27 Python
python生成多个只含0,1元素的随机数组或列表的实例
2018/11/12 Python
解决pyinstaller打包pyqt5的问题
2019/01/08 Python
详解用Python进行时间序列预测的7种方法
2020/03/13 Python
python+selenium+chrome批量文件下载并自动创建文件夹实例
2020/04/27 Python
Pytorch十九种损失函数的使用详解
2020/04/29 Python
tensorflow从ckpt和从.pb文件读取变量的值方式
2020/05/26 Python
详解pyinstaller生成exe的闪退问题解决方案
2020/06/19 Python
HTML5在a标签内放置块级元素示例代码
2013/08/23 HTML / CSS
印尼最大的在线购物网站:MatahariMall.com
2016/08/26 全球购物
世界领先的在线地板和建筑材料批发商:BuildDirect
2017/02/26 全球购物
大学生就业自我推荐信
2014/05/10 职场文书
应届生求职信范文
2014/05/26 职场文书
房屋鉴定委托书范本
2014/09/23 职场文书
违反纪律检讨书范文
2015/05/07 职场文书
大学生心理健康活动总结
2015/05/08 职场文书
详解Python如何批量采集京东商品数据流程
2022/01/22 Python