说说Python中的反射是什么?

简介: 公众号新增加了一个栏目,就是每天给大家解答一道Python常见的面试题,反正每天不贪多,一天一题,正好合适,只希望这个面试栏目,给那些正在准备面试的同学,提供一点点帮助!

小猿会从最基础的面试题开始,每天一题。如果参考答案不够好,或者有错误的话,麻烦大家可以在留言区给出自己的意见和讨论,大家是要一起学习的 。


废话不多说,开始今天的题目:


问:说说Python中的反射?

答:在反射机制就是在运行时,动态的确定对象的类型,并可以通过字符串调用对象属性、方法、导入模块,是一种基于字符串的事件驱动。通过字符串的形式,去模块寻找指定函数,并执行。利用字符串的形式去对象(模块)中操作(查找/获取/删除/添加)成员。


Python是一门解释型语言,因此对于反射机制支持很好。在Python中支持反射机制的函数有getattr()、setattr()、delattr()、exec()、eval()、__import__,这些函数都可以执行字符串。


在 Python 中,反射的实现很简单,主要通过以下 4 个函数:


1、getattr()

1.jpg

# getattr 语法
getattr(object,name[,default])
#参数
# · object -- 对象
# · name -- 字符串,对象属性
# · default-- 默认返回值,如果不提供该参数,在没有对应属性时,将触发AttrbuteError.
# 返回值 :返回对象属性值



2、hasattr()

2.jpg

# hasattr 语法
hasattr(object,name)
#参数
# · object -- 对象
# · name -- 字符串,属性名
# 返回值 :如果对象有该属性返回 True,否则返回 False。
3、setattr()


3.jpg

# setattr 语法
setattr(object, name, value)
#参数
# · object -- 对象
# · name -- 字符串,属性名
# · value -- 属性值。
# 返回值 :无
4、delattr()


4.jpg

delattr(object, name)
delattr() 函数用来删除指定对象的指定名称的属性,和setattr函数作用相反,属性必须存在,否则发出AttributeError。
This is a relative of setattr(). The arguments are an object and a string. The string must be the name of one of the object’s attributes. The function deletes the named attribute, provided the object allows it. For example, delattr(x, 'foobar') is equivalent to del x.foobar.

由于篇幅关系,具体的代码,给大家一个参考链接:

https://blog.csdn.net/perfect1t/article/details/80825372


如果对于参考答案有不认同的,大家可以在评论区指出和补充,欢迎留言!

相关文章
|
5月前
|
测试技术 API 数据库
Python反射机制在实际场景中的应用
Python 的反射机制是指在运行时动态地访问、检测和修改类和对象的属性和方法。:通过反射机制,可以动态加载和执行插件,无需在代码中硬编码每个插件的具体实现。这样可以实现插件化架构,使系统更加灵活和可扩展。:可以使用反射机制来读取和解析配置文件中的配置项,并动态地应用到程序中。这样可以实现灵活的配置管理,方便根据需要进行配置项的修改和扩展。:在自动化测试框架中,可以利用反射机制动态地加载和执行测试用例,从而实现自动化测试的灵活性和扩展性。
60 2
|
6月前
|
Python
python反射
python反射
|
4月前
|
程序员 开发者 Python
Python动态属性与反射机制方式
通过反射和动态属性,Python程序员获得了巨大的权能,能在运行时访问、修改或为对象新增属性和方法,显著提高编程的智能化和适应性。内置的反射机制可能使开发者跨越编写代码时的限制,通过名称访问对象的特性、方法以及其他成员,为创建一个具有高度配置性、扩展性强大的应用程序打下基础。此外,利用getattr和setattr函数来获取和设定对象的属性,或是利用hasattr确认其是否存在某属性,甚至可以通过名字来动态地执行对象的函数。 总之,反射和动态属性对于Python的程序开发而言是重要的工具,它们不仅提供了编写效率高且灵活的代码的能力,还为构建可高度定制和扩展的应用程序提供了可能。对于熟练掌握这些
|
5月前
|
安全 Python
深入浅出Python反射机制
1. 什么是反射 简单来说,反射就是程序在运行时能够"观察"自己,获取、检查和修改自身状态或行为的一种能力。听起来有点抽象?别急,我们慢慢道来。 在Python中,反射允许我们在代码运行时: • 查看对象有哪些属性和方法 • 获取属性的值 • 调用对象的方法 • 甚至动态地添加或修改属性和方法
|
5月前
|
Python
python反射 , 异常处理
python反射 , 异常处理
|
5月前
|
网络架构 Python
python的反射机制
python的反射机制
24 0
|
5月前
|
Python
Python反射和异常处理
Python反射和异常处理
|
6月前
|
Python
Python中的反射
Python中的反射
132 5
|
6月前
|
Python
解释一下Python中的反射机制。
解释一下Python中的反射机制。
33 1
|
测试技术 Python
Python--getattr反射+selenium详解篇
Python--getattr反射+selenium详解篇
82 0