h3

php程序员学习python3学习第十五天

1,通过字符串的形式导入模块 反射  __import__()

# -*- coding: utf-8 -*-
#反射 通过字符串的形式导入模块 通过字符串的形式,去模块中寻找指定函数并执行
import coms
# BB = __import__(coms) #等同于AA
r = coms.f1()
print(r)

#根据用户输入进行导入模块
im_name = input('模块名')
print(im_name,type(im_name)) #此时类型为str 不可以import im_name 进行导入
#可以使用__import__进行导入
DD = __import__(im_name)
re = DD.f1()
print(re)

2,getattr() 字符串的形式查找模块中的属性

# -*- coding: utf-8 -*-
#getattr() 以字符串的形式执行导入模块中的函数

in_name = input('模块名')
in_func = input('函数名')

dd = __import__(in_name)
f = getattr(dd, in_func)
fe = f()
print(fe) #a

3,反射 根据字符串形式去某个对象中操作其成员

# -*- coding: utf-8 -*-
#反射  根据字符串形式去某个对象中操作其成员
import coms

#检测模块中是否具有指定的属性
r = hasattr(coms, 'f1')
print(r)
#根据字符串形式在模块中获取
f = getattr(coms, 'f1')
re = f()
print(re)
#根据字符串形式设置属性
r1 = hasattr(coms, 'name')
print(r1) #False
setattr(coms, 'name', 'age')
r2 = hasattr(coms, 'name')
print(r2) #True

#去模块中把某个属性删除
delattr(coms, 'name')

4,使用__import__() 导入嵌套的模块

#使用__import__()导入嵌套的模块,可以设置属性fromlist = True
im = __import__('lib.test.com', fromlist=True)
print(im)
posted @ 2017-06-08 22:43  码上平天下  阅读(68)  评论(0)    收藏  举报