Python内置函数property()详解:实现属性的获取、设置与删除

拾光
拾光
发布时间:2026-10-14| 3人浏览过
原创

本文详细介绍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()的资料请关注本站其它相关文章!

免责声明:本文内容仅供参考,不代表本站观点。转载或引用请注明出处。

Python 相关产品和应用

全部下载
Selenium

Selenium

4.51.0 · Windows

用于浏览器自动化和 Web 测试的 Python 工具。

scikit-learn

scikit-learn

1.9.1 · Windows

常用 Python 机器学习算法与模型评估工具库。

Black

Black

26.10.1 · Windows

强调一致性的 Python 自动代码格式化工具。

Ruff

Ruff

0.17.1 · macOS

由 Rust 编写的高速 Python 代码检查和格式化工具。

pytest

pytest

9.1.1 · Windows

简洁而强大的 Python 自动化测试框架。

FastAPI

FastAPI

0.146.0 · Windows

高性能 Python API 框架,支持类型提示和自动接口文档。

Flask

Flask

3.1.3 · Windows

轻量灵活的 Python Web 应用框架。

Django

Django

6.1.2 · Windows

成熟的 Python Web 框架,适合构建内容站点和业务系统。

Spyder

Spyder

6.1.7 · Windows

面向科学计算与数据分析的 Python 集成开发环境。

SciPy

SciPy

1.18.1 · Windows

面向科学、工程和技术计算的 Python 算法库。