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 相关文章推荐
浅谈function(函数)中的动态参数
Apr 30 Python
python3读取MySQL-Front的MYSQL密码
May 03 Python
浅谈python可视化包Bokeh
Feb 07 Python
Python中利用xpath解析HTML的方法
May 14 Python
python 爬虫一键爬取 淘宝天猫宝贝页面主图颜色图和详情图的教程
May 22 Python
Python实现网站表单提交和模板
Jan 15 Python
Python 200行代码实现一个滑动验证码过程详解
Jul 11 Python
Python实现一个数组除以一个数的例子
Jul 20 Python
Python爬取视频(其实是一篇福利)过程解析
Aug 01 Python
python入门之井字棋小游戏
Mar 05 Python
解决Alexnet训练模型在每个epoch中准确率和loss都会一升一降问题
Jun 17 Python
Python查找算法的实现 (线性、二分,分块、插值查找算法)
Apr 24 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
颠覆常识!无色透明的咖啡诞生了(中日双语)
2021/03/03 咖啡文化
PHP读MYSQL中文乱码的解决方法
2006/12/17 PHP
PHP获取当前页面完整URL的实现代码
2013/06/10 PHP
功能强大的php文件上传类
2016/08/29 PHP
php封装db类连接sqlite3数据库的方法实例
2017/12/19 PHP
php中的钩子理解及应用实例分析
2019/08/30 PHP
tp5框架的增删改查操作示例
2019/10/31 PHP
node.js中的http.request.end方法使用说明
2014/12/10 Javascript
javascript实现仿IE顶部的可关闭警告条
2015/05/05 Javascript
每天一篇javascript学习小结(基础知识)
2015/11/10 Javascript
Javascript点击按钮随机改变数字与其颜色
2016/09/01 Javascript
Vue异步组件使用详解
2017/04/08 Javascript
AngularJS 单选框及多选框的双向动态绑定
2017/04/20 Javascript
JS仿QQ好友列表展开、收缩功能(第一篇)
2017/07/07 Javascript
基于input框覆盖掉数字英文的实例讲解
2017/07/21 Javascript
Vue 组件间的样式冲突污染
2017/08/31 Javascript
在Mac下彻底卸载node和npm的方法
2018/05/16 Javascript
详解如何在Vue项目中导出Excel
2019/04/19 Javascript
vue中的mescroll搜索运用及各种填坑处理
2019/10/30 Javascript
python脚本监控docker容器
2016/04/27 Python
利用python实现微信头像加红色数字功能
2018/03/26 Python
Python学习笔记之字符串和字符串方法实例详解
2019/08/22 Python
使用Django实现把两个模型类的数据聚合在一起
2020/03/28 Python
使用keras时input_shape的维度表示问题说明
2020/06/29 Python
OpenCV灰度化之后图片为绿色的解决
2020/12/01 Python
CSS3中animation实现流光按钮效果
2020/12/21 HTML / CSS
html5使用Drag事件编辑器拖拽上传图片的示例代码
2017/08/22 HTML / CSS
个人教师自我评价范文
2013/12/02 职场文书
家佳咖啡店创业计划书
2013/12/27 职场文书
模具设计与制造专业推荐信
2014/02/16 职场文书
小学一年级评语大全
2014/04/22 职场文书
签约仪式策划方案
2014/06/02 职场文书
农行心得体会
2014/09/02 职场文书
花田少年史观后感
2015/06/16 职场文书
2015迎新晚会开场白
2015/07/17 职场文书
坚持不是死撑,更重要的是心态
2019/08/19 职场文书