Python3 反射机制的四个核心函数详解

纸上星河
纸上星河
发布时间:2026-10-13| 6人浏览过
原创

本文深入解析 Python3 中反射机制的四种基本方法。通过具体代码示例,详细讲解如何利用 getattr 动态获取模块或对象中的方法,使用 hasattr 判断属性或方法是否存在,通过 setattr 动态设置属性,以及利用 delattr 删除指定属性。掌握这四个函数有助于提升代码的灵活性与动态处理能力,适用于需要运行时动态调用或修改对象状态的开发场景。

Python3 反射机制概述

本文主要解析 Python3 中反射机制的四种基本方法,并通过详细的示例代码进行说明,旨在为读者的学习或工作提供具有实际价值的参考。

getattr() 动态获取方法


class Person(object):  
  def __init__(self):
    pass
  def info(self):
    print('我是person类中的info方法')

1. getattr() 方法

该函数用于根据传入的字符串名称,在指定的模块或对象中查找对应的方法或属性。

hasattr() 属性存在性判断


instantiation = reflect.Person()#先实例化
f = getattr(instantiation,'info')#使用getattr函数去寻找字符串的同名方法
f()#调用方法
输出结果:我是person类中的info方法

2. hasattr() 方法

该函数用于根据字符串名称,判断指定模块或对象中是否存在对应的属性或方法。

setattr() 动态设置属性


instantiation = reflect.Person()#先实例化
f = hasattr(instantiation,'info')
print(f)
输出结果:True

3. setattr() 方法

该函数用于根据字符串名称,在指定模块或对象中动态设置一个新的属性或方法。

delattr() 动态删除属性


instantiation = reflect.Person()
f = setattr(instantiation,'exit','this is a exit method')
f2 = hasattr(instantiation,'exit')
print(f2)
输出结果就是True

4. delattr() 方法

该函数用于根据字符串名称,从指定模块或对象中删除指定的属性或方法。


instantiation = reflect.Person()#实例化
f = delattr(instantiation,'exit')
f = hasattr(instantiation,'exit')
print(f)
输出结果就是False

以上内容涵盖了 Python3 反射的核心操作,希望能为读者的学习带来帮助,欢迎继续支持本站获取更多技术分享。

相关标签:

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

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 算法库。