例如,考虑 3 个模块,即“苹果”、“橙子”和“水果”。模块“apple”导入“orange”和“fruit”。模块“orange”仅导入“fruit”。既然“水果”对于两者来说都很常见,那么可以用不同的方式来完成吗?这在内存使用和速度方面是否效率低下?
我想知道这是如何在专业分发的包中完成的。比如说,如果具有 GUI 代码和其他复杂内容的各个模块都需要一个标准库模块(即 httplib)。在每个 GUI 文件中导入这个模块是不切实际的,不是吗?
最佳答案
导入多个的模块通常只初始化一次,并且命名空间被引入到模块的范围中。因此,在上面的示例中,有一个水果类和从它继承的两个类,如果您要引入 3 个苹果品种,那么仍然只有一个基础水果类。
这就是专业软件包的做法。在其他语言(如 C/C++)中,您需要使用 wards 来防止多次导入,python 会为您做到这一点。
关于python - 在python中导入,两个模块共享公共(public)资源,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20337169/