模仿nodejs的require方法导入模块 使用Python的时候我们有时候会遇到这样的问题:
src
|- init.py
|- a.py
|- dir/
|- b.py
在这样的情况下在b.py里导入a.py呢?require.py的作用就是提供一个根据相对路径导入模块的解决方案。
在启动文件第一行加入from require import *
即可,其他python源文件就可以自由使用require方法导入模块了。
以上面的目录结构为例,假设init.py是启动文件,使用方法是:
在init.py中加入from require import *
在b.py里加入require('../a.py')
便可以导入a.py模块了。
如果希望导入模块并且将模块的全局变量应用到当前环境,简单的说就是类似from modA import *
使用require的写法就是require('modA', globals())
导入顺序和python一致,在test目录下有测试代码 例如:i1,i2是使用import语法循环导入,r1,r2是使用require语法循环导入 结果分别是
$ > python i1.py
i1
i2
i1
$ > python r1.py
r1
r2
r1
在python中可以导入1.py吗?不行!但是require可以!
在python中,你使用import 1
会这样
>>> import 1
File "<stdin>", line 1
import 1
^
SyntaxError: invalid syntax
但是使用require,放心,你成功导入的
from require import *
m2 = require('2.py')
print(m2)
会看到输出
<module '2' from 'XXXX/2.pyc'>