__import__ 模块为Python的内置模块,可以动态(字符串方式)加载其他类、函数、模块!
1、加载同层目录下的模块功能(同一个包下的其他功能函数)
main.py和test_demo.py 都在同一个层目录(p_test目录)下
-
#!/usr/bin/env python
-
# _*_ coding: utf-8 _*_
-
-
#test_demo.py 文件
-
-
def test():
-
print 'test demo!!!'
动态的加载方式
-
#!/usr/bin/env python
-
# _*_ coding: utf-8
-
-
#main.py 文件
-
-
model = __import__('test_demo')
-
func = getattr(model, 'test')
-
func()
正常的加载方式
-
#!/usr/bin/env python
-
# _*_ coding: utf-8 _*_
-
-
#main.py 文件
-
-
import test_demo
-
test_demo.test()
2、加载其他模块功能(其他包下的功能函数)
main.py(p_test目录下)和test_demo.py (demo目录下)不在同一个层目录下
-
#!/usr/bin/env python
-
# _*_ coding: utf-8 _*_
-
-
#test_demo.py 文件
-
-
def test():
-
print 'test'
动态加载方式
-
#!/usr/bin/env python
-
# _*_ coding: utf-8 _*_
-
-
#main.py 文件
-
-
model = __import__('demo.'+'test_demo')
-
method = getattr(model, 'test_demo')
-
func = getattr(method, 'test')
-
func()
正常加载方式
-
#!/usr/bin/env python
-
# _*_ coding: utf-8 _*_
-
-
#main.py 文件
-
-
import demo.test_demo
-
demo.test_demo.test()
-
或者
-
from demo import test_demo
-
test_demo.test()
__import__ 相关的还有四个内置函数:getattr(获取)、setattr(设置)、hasattr(检查)、delattr(删除),学懂了再来补充记录。
阅读(1356) | 评论(0) | 转发(0) |