Python @property详解
创始人
2024-05-24 10:07:09
0

Python @property详解

Python的装饰器,用来修饰方法,使调用方法变成读取属性

作用:

使用@property装饰器来创建只读属性,@property装饰器会将方法转换为相同名称的只读属性,可以与所定义的属性配合使用,这样可以防止属性被修改

使用方式:

1.不带装饰器

​ 语法:class property([fget[, fset[, fdel[, doc]]]])

参数

​ fget – 获取属性值的函数

​ fset – 设置属性值的函数

​ fdel – 删除属性值函数

​ doc – 属性描述信息

class test(object):def __init(self):self.__num = 0def getNum(self):return self.__numdef setNum(self,value):self.__num = valuedef delNum(self):del self.__numnum = property(getNum,setNum,delNum)# num = proper
print('test.num:', test.num)
test.num = 20
print('test.num:', test.num)
>>test.num: 
>>test.num: 20
#####            2.使用装饰器
class test(object):def __init__(self):self.__num=0@propertydef num(self):return self.__num@num.setterdef num(self.value):# 类型检查if not isinstance(value,int):raise TypeError("Expected a string")self.__num = value@num.deleterdef num(self):del self.__num
print('test_2.num:', test_2.num)
test.num = 90
print('test_2.num:', test_2.num)
print("判断是否有对应属性:",hasattr(test,"num"))
>>test.num: 
>>test.num: 90
>>判断是否有对应属性: True

hasattr() getattr() getattr() setattr()

hasattr():函数用于判断是否包含对应的属性

语法:hasattr(object,name)
参数:object--对象name--字符串,属性名
返回值:如果对象有该属性返回True,否则返回False

getattr():函数用于返回一个对象属性值

语法:getattr(object,name,default)
参数:object--对象name--字符串,对象属性default--默认返回值,如果不提供该参数,在没有对于属性时,将触发AttributeError。
返回值:返回对象属性值

setattr():函数用于设置属性值,该属性必须存在

语法:setattr(object,name,value)参数:object--对象name--字符串,对象属性value--属性值
返回值:无

delattr():函数用于删除属性

delattr(x,'foobar)相当于del x.foobar
语法:setattr(object,name)
参数:object--对象name--必须是对象的属性
返回值:无

相关内容

热门资讯

监控摄像头接入GB28181平... 流程简介将监控摄像头的视频在网站和APP中直播,要解决的几个问题是:1&...
Windows10添加群晖磁盘... 在使用群晖NAS时,我们需要通过本地映射的方式把NAS映射成本地的一块磁盘使用。 通过...
protocol buffer... 目录 目录 什么是protocol buffer 1.protobuf 1.1安装  1.2使用...
在Word、WPS中插入AxM... 引言 我最近需要写一些文章,在排版时发现AxMath插入的公式竟然会导致行间距异常&#...
【PdgCntEditor】解... 一、问题背景 大部分的图书对应的PDF,目录中的页码并非PDF中直接索引的页码...
Fluent中创建监测点 1 概述某些仿真问题,需要创建监测点,用于获取空间定点的数据࿰...
educoder数据结构与算法...                                                   ...
MySQL下载和安装(Wind... 前言:刚换了一台电脑,里面所有东西都需要重新配置,习惯了所...
修复 爱普生 EPSON L4... L4151 L4153 L4156 L4158 L4163 L4165 L4166 L4168 L4...
MFC文件操作  MFC提供了一个文件操作的基类CFile,这个类提供了一个没有缓存的二进制格式的磁盘...