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调用短信猫控件实现发短信功能实例
Jul 04 Python
Python-基础-入门 简介
Aug 09 Python
python实现简单温度转换的方法
Mar 13 Python
Python操作RabbitMQ服务器实现消息队列的路由功能
Jun 29 Python
python利用拉链法实现字典方法示例
Mar 25 Python
基于django ManyToMany 使用的注意事项详解
Aug 09 Python
Django使用消息提示简单的弹出个对话框实例
Nov 15 Python
flask利用flask-wtf验证上传的文件的方法
Jan 17 Python
Pandas把dataframe或series转换成list的方法
Jun 14 Python
Python grpc超时机制代码示例
Sep 14 Python
Python Merge函数原理及用法解析
Sep 16 Python
python+flask编写一个简单的登录接口
Nov 13 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获取客户端电脑屏幕参数的方法
2015/01/09 PHP
实例简介PHP的一些高级面向对象编程的特性
2015/11/27 PHP
PHP下载文件的函数实例代码
2016/05/18 PHP
Django中通过定时任务触发页面静态化的处理方式
2018/08/29 PHP
Javascript YUI 读码日记之 YAHOO.util.Dom - Part.3
2008/03/22 Javascript
JavaScript 基础知识 被自己遗忘的
2009/10/15 Javascript
div模拟选择框示例代码
2013/11/03 Javascript
JS保留两位小数 四舍五入函数的小例子
2013/11/20 Javascript
果断收藏9个Javascript代码高亮脚本
2016/01/06 Javascript
深入解析jQuery中Deferred的deferred.promise()方法
2016/05/03 Javascript
jQuery Mobile中的button按钮组件基础使用教程
2016/05/23 Javascript
Angular.js中处理页面闪烁的方法详解
2017/03/09 Javascript
JavaScript正则表达式校验与递归函数实际应用实例解析
2017/08/04 Javascript
EasyUI的TreeGrid的过滤功能的解决思路
2017/08/08 Javascript
Vue.js 中的 v-model 指令及绑定表单元素的方法
2018/12/03 Javascript
vue-cli配置全局sass、less变量的方法
2019/06/06 Javascript
解决vue-cli webpack打包开启Gzip 报错问题
2019/07/24 Javascript
vue 组件销毁并重置的实现
2020/01/13 Javascript
[01:29:46]DOTA2上海特级锦标赛C组资格赛#1 OG VS LGD第二局
2016/02/27 DOTA
解决Linux系统中python matplotlib画图的中文显示问题
2017/06/15 Python
Flask框架模板继承实现方法分析
2019/07/31 Python
django中使用事务及接入支付宝支付功能
2019/09/15 Python
tornado+celery的简单使用详解
2019/12/21 Python
css3弹性盒模型(Flexbox)详细介绍
2014/10/08 HTML / CSS
CSS3制作炫酷的自定义发光文字
2016/03/28 HTML / CSS
基本款天堂:Everlane
2017/05/13 全球购物
住房公积金接收函
2014/01/09 职场文书
大学生职业生涯规划书
2014/03/14 职场文书
海飞丝的广告词
2014/03/20 职场文书
义和团口号
2014/06/17 职场文书
2014年机关工会工作总结
2014/12/19 职场文书
2015年护士工作总结范文
2015/03/31 职场文书
稽核岗位职责范本
2015/04/13 职场文书
呐喊读书笔记
2015/06/30 职场文书
离职告别感言
2015/08/04 职场文书
vue-cropper组件实现图片切割上传
2021/05/27 Vue.js