首页 > 编程语言 > 详细

Python 反射

时间:2017-12-28 19:00:28      阅读:212      评论:0      收藏:0      [点我收藏+]

反射说简单点 --> 就是利用字符串的形式去对象(模块)中操作(寻找/检查/删除/设置)成员。

1.根据字符串的形式导入模块。
2.根据字符串的形式去对象(某个模块)中操作其成员 

说反射之前先介绍一下__import__方法,这个和import导入模块的另一种方式

1. import  commons
2. __import__(commons) 

如果是多层导入:

1. from list.text import commons 
2. __import__( list.text.commons,fromlist=True) #如果不加上fromlist=True,只会导入list目录

反射即想到4个内置函数分别为:getattr、hasattr、setattr、delattr  获取成员、检查成员、设置成员、删除成员下面逐一介绍先看例子:

class Foo():
    def __init__(self):
        self.name = abc

    def func(self):
        return "OK"


obj = Foo()
# 获取成员
ret = getattr(obj, func)  # 获取的是个对象
r = ret()
print(r)

# 检查成员
ret = hasattr(obj, func)  # 因为有func方法所以返回True
print(ret)

# 设置成员
print(obj.name)  # 设置之前为:abc
ret = setattr(obj, name, 19)
print(obj.name)  # 设置之后为:19


# 删除成员
print(obj.name)  # abc
delattr(obj, name)
#print(obj.name)  # 报错
OK
True
abc
19

 

Python 反射

原文:https://www.cnblogs.com/ming5218/p/8137130.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!