Python的@property如何使用
发表于:2025-02-04 作者:千家信息网编辑
千家信息网最后更新 2025年02月04日,这篇文章主要介绍了Python的@property如何使用的相关知识,内容详细易懂,操作简单快捷,具有一定借鉴价值,相信大家阅读完这篇Python的@property如何使用文章都会有所收获,下面我们
千家信息网最后更新 2025年02月04日Python的@property如何使用2、举个例子
3、解决问题
4、换个方法
这篇文章主要介绍了Python的@property如何使用的相关知识,内容详细易懂,操作简单快捷,具有一定借鉴价值,相信大家阅读完这篇Python的@property如何使用文章都会有所收获,下面我们一起来看看吧。
1、几个概念
_a(前置单下划线),这种属性仅表示约定的私有,非真正的私有。
__a(前置双下划线),这种属性表示私有,无法在外部访问。
_a_(前后双下划线),这种属性标识系统属性。(可选)
a_(后置单下划线),这种属性是为了避免和保留关键字冲突。(可选)
2、举个例子
定义一个类:
class Student(object): _sex="male" __age=0
执行:(私有属性无法在外部访问)
>>> stu = Student()>>> stu._sex"male">>> stu.__ageTraceback (most recent call last): File "", line 1, in AttributeError: "Student" object has no attribute "__age">>>
3、解决问题
从上面的类中我们可以看到,私有属性无法在类实例中访问,怎么办呢?当我们需要对类的私有属性__age进行查询和修改的时候,我们可以定义get_age和set_age去实现。
class Student(object): _sex="male" __age=0 def get_age(self): return self.__age def set_age(self,age): self.__age = age
执行:
>>> stu = Student()>>> stu.get_age() 0>>> stu.set_age(18) >>> stu.get_age() 18>>>
4、换个方法
但是上面的这种方式略显复杂,如果在私有属性较多的类中就不太适用了,所以我们期望寻求一种更简单的方式去解决这个问题,比如将这个私有属性转化为另一个属性。告诉你个好消息,Python已经帮我们实现了,这就是@property。
class Student(object): _sex="male" __age=0 def get_age(self): return self.__age def set_age(self,age): self.__age = age @property def age(self): return self.__age
执行:
>>> from payhlib import Student>>> s = Student()>>> s.age0>>> s.set_age(19)>>> s.age19>>
在上面我们将__age私有属性转换为了age属性,你可能会想,既然私有属性转换为了属性,那我们是不是可以直接修改它呢?答案是不行,因为property虽然将__age转换为了属性,但是其不具备setter功能,需要我们去添加。
>>> from payhlib import Student>>> s = Student()>>> s.age 0>>> s.age=20Traceback (most recent call last): File "", line 1, in AttributeError: can"t set attribute>>>
添加setter方法
class Student(object): _sex="male" __age=0 def get_age(self): return self.__age def set_age(self,age): self.__age = age @property def age(self): return self.__age @age.setter def age(self,value): self.__age=value
执行:
>>> from payhlib import Student>>> s = Student()>>> s.age0>>> s.age=20>>> s.age 20>>>
关于"Python的@property如何使用"这篇文章的内容就介绍到这里,感谢各位的阅读!相信大家对"Python的@property如何使用"知识都有一定的了解,大家如果还想学习更多知识,欢迎关注行业资讯频道。
属性
私有
下划线
知识
内容
方式
方法
篇文章
问题
面的
不行
复杂
价值
例子
关键
关键字
功能
好消息
实例
就是
数据库的安全要保护哪些东西
数据库安全各自的含义是什么
生产安全数据库录入
数据库的安全性及管理
数据库安全策略包含哪些
海淀数据库安全审计系统
建立农村房屋安全信息数据库
易用的数据库客户端支持安全管理
连接数据库失败ssl安全错误
数据库的锁怎样保障安全
网络安全隐患分析研判
c 测量软件开发
对外公开发布用户证书的服务器是
银行网络安全和信息化信息
产业艺术设计互联网科技
teams有中国服务器吗
崇明区推广网络技术
网络安全工作计划2020年
2011年软件开发工资
以网络安全为主题绘一张画
在哪里能大量获取用户数据库
此操作链接外部数据库
软件开发如何监理
日本国产网络技术
服务器非法外联是什么意思
php 数据库的安全性
域名怎么换服务器
2003服务器 权限设置
服务器版iis重新启动
网络安全工作要求发言
找不到服务器或dns出现错误
xml保存数据库中
网络安全法讲课
顺昌网络安全宣传周
双网卡负载均衡服务器
360服务器安全狗 阿里云
淘宝服务软件开发
渝北区工商软件开发服务公司
网络安全加固防守建议
好用的数据库界面工具