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

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

本文深入解析 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 相关产品和应用

全部下载

专题列表