python基于property()函数定义属性
作者:xiaobaizzZ 时间:2022-11-01 04:55:14
这篇文章主要介绍了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
来源:https://www.cnblogs.com/xiaobaizzz/p/12227385.html
标签:python,property,函数,定义


猜你喜欢
一文搞懂SQL注入攻击
2024-01-17 05:50:11
Python爬取当网书籍数据并数据可视化展示
2023-11-20 11:31:14

SQL中的开窗函数(窗口函数)
2024-01-24 09:59:43

Python检测字符串中是否包含某字符集合中的字符
2023-09-08 10:44:30
php中常量DIRECTORY_SEPARATOR用法深入分析
2023-09-06 00:23:27
Asp 单页查询数据库
2010-05-11 20:11:00
Access数据库操作中出现的怪现象
2008-04-24 14:22:00
python实现快速排序的示例(二分法思想)
2023-05-05 10:33:10

mysql中普通索引和唯一索引的效率对比
2010-12-08 16:03:00

Laravel操作redis和缓存操作详解
2023-05-25 02:19:29
python多进程使用apply_async的使用方法详解
2022-11-14 16:08:50

VBScript中清除数组元素Erase语句
2008-06-27 13:05:00
将字典转换为DataFrame并进行频次统计的方法
2023-11-21 05:37:30

使用python接入微信聊天机器人
2022-04-08 10:07:23
mysql存储过程事务管理简析
2024-01-17 14:30:28
用SQL Server事件探查器创建跟踪
2009-02-24 17:45:00
Python简单删除列表中相同元素的方法示例
2021-10-21 11:25:18
流动的线条 —— 中国汉字书法之美
2009-10-30 18:15:00

Oracle 触发器的使用小结
2009-05-24 19:54:00
有用的:nth-child秘方
2011-07-01 12:56:11