Python内置函数property()详解:实现属性的获取、设置与删除
本文详细介绍Python内置函数property()的使用方法,通过获取、设置和删除属性三个参数实现对外部访问的统一控制。文章解析了property在简化接口调用中的优势,并补充介绍了hasattr、getattr、setattr和delattr等常用属性操作内置函数,帮助开发者更高效地管理对象属性。
property()函数实现属性访问控制
代码
class Shuxing():
def __init__(self, size = 10):
self.size = size
def getSize(self):
print('getSize')
return self.size
def setSize(self, value):
print('setSize')
self.size = value
def delSize(self):
print('delSize')
del self.size
x = property(getSize, setSize, delSize)
sx=Shuxing(100)
print('1',sx.x) #获取x,执行getSize方法
sx.x=1000 #设置x,执行setSize方法
print('2',sx.x) #获取x,执行getSize方法
del sx.x # 删除x,执行delSize方法
print('3',sx.size) # 获取x,执行getSize方法,但是此时size已被删除,所以会报错
结果
getSize 1 100 Traceback (most recent call last): setSize getSize File "D:/PycharmProjects/flask_demo/a.py", line 21, in <module> 2 1000 delSize print('3',sx.size) AttributeError: 'Shuxing' object has no attribute 'size'
Process finished with exit code 1
property()在接口简化中的应用
property()函数接收三个参数,分别对应获取属性、设置属性和删除属性的方法。通过这种方式,外部对象可以直接通过访问x的方式,实现对属性的获取、设置或删除操作。
如果直接调用getSize、setSize或delSize函数,当这些方法作为接口提供给用户时,一旦方法名称变更,用户代码也需要随之修改,维护成本较高。使用property()后,用户无需关心底层方法名称的变化,只需通过统一的属性访问方式即可,降低了耦合度。
Python属性操作相关内置函数
除了property(),Python还提供以下内置方法用于属性操作:
- hasattr():用于判断对象中是否存在指定名称的属性。第一个参数为对象,第二个参数为字符串(属性名称)。
- getattr():用于获取对象中指定属性的值。若属性不存在,可返回指定的提示字符串。第一个参数为对象,第二个参数为字符串(属性名称),第三个参数为属性不存在时的提示信息。
- setattr():用于设置对象中指定属性的值。若属性不存在,则自动为对象添加该属性并赋值。第一个参数为对象,第二个参数为字符串(属性名称),第三个参数为要设置的属性值。
- delattr():用于删除对象中指定的属性。第一个参数为对象,第二个参数为需要删除的属性名称。
以上就是Python内置函数property()如何使用的详细内容,更多关于Python内置函数property()的资料请关注本站其它相关文章!
本站声明
本文内容仅供参考,不代表本站观点。转载或引用请注明出处。如发现内容问题,请通过联系我们页面反馈。













