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 初始化多维数组代码
Sep 06 Python
Python中的getopt函数使用详解
Jul 28 Python
一步步教你用Python实现2048小游戏
Jan 19 Python
python列表list保留顺序去重的实例
Dec 14 Python
pyside+pyqt实现鼠标右键菜单功能
Dec 08 Python
python基础梳理(一)(推荐)
Apr 06 Python
Python 多个图同时在不同窗口显示的实现方法
Jul 07 Python
详解将Python程序(.py)转换为Windows可执行文件(.exe)
Jul 19 Python
浅谈python中统计计数的几种方法和Counter详解
Nov 07 Python
浅析python标准库中的glob
Mar 13 Python
Python预测2020高考分数和录取情况
Jul 08 Python
Ubuntu 20.04安装Pycharm2020.2及锁定到任务栏的问题(小白级操作)
Oct 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的imageTtfText()函数深入详解
2021/03/03 PHP
Javascript开发之三数组对象实例介绍
2012/11/12 Javascript
js 表单提交后按钮变灰的实例代码
2013/08/16 Javascript
jQuery地图map悬停显示省市代码分享
2015/08/20 Javascript
基于jQuery和hwSlider实现内容左右滑动切换效果附源码下载(一)
2016/06/22 Javascript
浅谈javascript中的Function和Arguments
2016/08/30 Javascript
利用React-router+Webpack快速构建react程序
2016/10/27 Javascript
本地Bootstrap文件字体图标引入却无法显示问题的解决方法
2020/04/18 Javascript
JavaScript对象封装的简单实现方法(3种方法)
2017/01/03 Javascript
Node.js学习入门
2017/01/03 Javascript
JavaScript优化以及前段开发小技巧
2017/02/02 Javascript
基于Bootstrap分页的实例讲解(必看篇)
2017/07/04 Javascript
详解基于vue-cli优化的webpack配置
2017/11/06 Javascript
Vue组件库发布到npm详解
2018/02/17 Javascript
基于element-ui组件手动实现单选和上传功能
2018/12/06 Javascript
react实现antd线上主题动态切换功能
2019/08/12 Javascript
Python的动态重新封装的教程
2015/04/11 Python
python基于urllib实现按照百度音乐分类下载mp3的方法
2015/05/25 Python
Python脚本文件打包成可执行文件的方法
2015/06/02 Python
Python开发的实用计算器完整实例
2017/05/10 Python
python执行scp命令拷贝文件及文件夹到远程主机的目录方法
2019/07/08 Python
Python中包的用法及安装
2020/02/11 Python
Python pip install如何修改默认下载路径
2020/04/29 Python
Python中flatten( ),matrix.A用法说明
2020/07/05 Python
Python request post上传文件常见要点
2020/11/20 Python
Html5之title吸顶功能
2018/06/04 HTML / CSS
新农村建设标语
2014/06/24 职场文书
客户答谢会活动方案
2014/08/31 职场文书
教师竞聘上岗演讲稿
2014/09/03 职场文书
2014中学教师节广播稿
2014/09/10 职场文书
校园环保广播稿(3篇)
2014/09/15 职场文书
谢师宴邀请函
2015/02/02 职场文书
新生开学寄语大全
2015/05/28 职场文书
街道办残联2016年助残日活动总结
2016/04/01 职场文书
HTML5简单实现添加背景音乐的几种方法
2021/05/12 HTML / CSS
Python中OpenCV实现简单车牌字符切割
2021/06/11 Python