Python中利用property()函数实现属性封装与访问

咖啡半糖
咖啡半糖
发布时间:2026-10-13| 4人浏览过
原创

本文详解Python中property()函数的用法,展示如何在保持类封装性的前提下,通过“类对象.属性”的方式访问和修改私有属性。通过对比传统方法与property实现,说明其简化代码结构、提升可读性的优势,并包含完整的代码示例与输出解析。

Python property()函数概述

本文主要介绍如何在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

使用property()简化属性访问

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

总结与资源支持

以上就是本文关于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 算法库。