有没有办法导入一组模块



在C/C++中,如果我们有以下标头a.h

#include "b.h"
#include "c.h"
#include "d.h"

然后,如果我们包括a.h,那么b.hc.hd.h也会自动包括在内。因此,很容易同时包含多个相关的标头。

然而,在Python中,情况似乎有所不同。假设我们有一个名为a.py的Python模块,如图所示:

import b
import c
import d

在这种情况下,即使不自动导入I import abcd

简而言之,我想找到一种简单地导入一组模块的方法。有什么办法让我这么做吗?

您可以使用另一种方法:

from a import *

在C/C++中使用#include时,它不是编译器的一部分。它是预处理器的一部分。如果我的main.cpp有一个include,预处理器会复制包含文件的所有代码。在Python中,情况有所不同,因为预处理器不存在,解释器只为已导入的文件导入特定模块。

如果要导入多个模块,则必须使用from a import *

有几种方法可以在python 中导入

1( import a

这将允许您使用模块a中的任何内容,但在调用它之前,您需要使用a.foo

2( import somethinglong as a

这需要一个长的模块名称,并为其分配a以防止somethinglong.foo,但具有a.foo

3( from a import b

这将只允许导入b,这样就不会将库作为一个完整的包括在内

4( from a import *

这将从模块a导入所有内容,并允许您使用不带前缀的任何内容,即取代a.foo而仅使用foo

注意#4是您想要的。

# x.py
from y import *
print z.hello
# y.py
import z
# z.py
hello = 'there'

因此,看起来最安全和最Python的方式是使用分隔MyImports.py等文件

import b
import c
import d

from MyImports import *

在主模块中?

我建议添加一种方法,运行导入到您的低级实用程序模块

# MyUtils.py
def importAbc():
    import b
    import c
    import d

但这行不通。。。

最新更新