__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(删除),学懂了再来补充记录。