反射

:说说Python中的反射?

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

 

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

 

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

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

 

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

 

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

 

4.delattr(object, name)

delattr() 函数用来删除指定对象的指定名称的属性,和setattr函数作用相反,属性必须存在,否则发出AttributeError

 

posted on 2021-03-16 15:16  Plyc  阅读(49)  评论(0编辑  收藏  举报

导航