说说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


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

相关文章
|
2天前
|
Python
python反射
python反射
|
2天前
|
Python
解释一下Python中的反射机制。
解释一下Python中的反射机制。
13 1
|
2天前
|
设计模式 Java Python
python内置方法和属性应用:反射和单例
python除了丰富的第三方库外,本身也提供了一些内在的方法和底层的一些属性,大家比较常用的如dict、list、set、min、max、range、sorted等。笔者最近在做项目框架时涉及到一些不是很常用的方法和属性,在本文中和大家做下分享【2月更文挑战第2天】
39 0
|
9月前
|
测试技术 Python
Python--getattr反射+selenium详解篇
Python--getattr反射+selenium详解篇
41 0
|
2天前
|
Python
Python小姿势 - 如何在Python中实现反射?
Python小姿势 - 如何在Python中实现反射?
|
11月前
|
存储 Python
Python的反射机制
Python的反射机制
46 0
|
数据库 Python
Python中的反射
Python中的反射
134 0
|
Java Python
Python Python中的反射机制
Python Python中的反射机制
47 0