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基础教程之匿名函数lambda
Jan 17 Python
python 通过xml获取测试节点和属性的实例
Mar 31 Python
python如何制作英文字典
Jun 25 Python
django 数据库连接模块解析及简单长连接改造方法
Aug 29 Python
使用Python刷淘宝喵币(低阶入门版)
Oct 30 Python
python 字典访问的三种方法小结
Dec 05 Python
Django 实现对已存在的model进行更改
Mar 28 Python
Python3 用什么IDE开发工具比较好
Nov 28 Python
python使用正则表达式匹配txt特定字符串(有换行)
Dec 09 Python
详解python中的异常和文件读写
Jan 03 Python
python线程优先级队列知识点总结
Feb 28 Python
Django中session进行权限管理的使用
Jul 09 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 smarty 二级分类代码和模版循环例子
2011/06/16 PHP
PHP调用Webservice实例代码
2011/07/29 PHP
洪恩在线成语词典小偷程序php版
2012/04/20 PHP
解析VS2010利用VS.PHP插件调试PHP的方法
2013/07/19 PHP
利用location.hash实现跨域iframe自适应
2010/05/04 Javascript
25个好玩的JavaScript小游戏分享
2011/04/22 Javascript
jquery入门—数据删除与隔行变色以及图片预览
2013/01/07 Javascript
js中parseFloat(参数1,参数2)定义和用法及注意事项
2013/01/27 Javascript
JScript分割字符串示例代码
2013/09/04 Javascript
js加密解密字符串可自定义密码因子
2014/05/13 Javascript
jQuery的:parent选择器定义和用法
2014/07/01 Javascript
js Calender控件使用详解
2015/01/05 Javascript
微信小程序对接七牛云存储的方法
2017/07/30 Javascript
JS获取子、父、兄节点方法小结
2017/08/14 Javascript
javaScript动态添加Li元素的实例
2018/02/24 Javascript
JS简单数组排序操作示例【sort方法】
2019/05/17 Javascript
微信小程序云开发修改云数据库中的数据方法
2019/05/18 Javascript
node 标准输入流和输出流代码实例
2019/09/19 Javascript
Python的另外几种语言实现
2015/01/29 Python
python pandas中DataFrame类型数据操作函数的方法
2018/04/08 Python
python 多线程串行和并行的实例
2019/02/22 Python
python实现生成Word、docx文件的方法分析
2019/08/30 Python
Python常见反爬虫机制解决方案
2020/06/01 Python
Visual Studio Code搭建django项目的方法步骤
2020/09/17 Python
新西兰廉价汽车租赁:Snap Rentals
2018/09/14 全球购物
WatchShop法国:英国排名第一的独立手表零售商
2020/02/17 全球购物
会计毕业生自我鉴定
2013/11/04 职场文书
安全大检查反思材料
2014/01/31 职场文书
洗发露广告词
2014/03/14 职场文书
不忘国耻振兴中华演讲稿
2014/05/14 职场文书
校庆团日活动总结
2014/08/28 职场文书
2014年妇联工作总结
2014/11/21 职场文书
企业财务总监岗位职责
2015/04/03 职场文书
2015年质量管理工作总结范文
2015/05/18 职场文书
获奖感言怎么写
2015/07/31 职场文书
复制别人的成功真的会成功吗?
2019/10/17 职场文书