python - 在python中导入,两个模块共享公共(public)资源

标签 python import

例如,考虑 3 个模块,即“苹果”、“橙子”和“水果”。模块“apple”导入“orange”和“fruit”。模块“orange”仅导入“fruit”。既然“水果”对于两者来说都很常见,那么可以用不同的方式来完成吗?这在内存使用和速度方面是否效率低下?

我想知道这是如何在专业分发的包中完成的。比如说,如果具有 GUI 代码和其他复杂内容的各个模块都需要一个标准库模块(即 httplib)。在每个 GUI 文件中导入这个模块是不切实际的,不是吗?

最佳答案

导入多个的模块通常只初始化一次,并且命名空间被引入到模块的范围中。因此,在上面的示例中,有一个水果类和从它继承的两个类,如果您要引入 3 个苹果品种,那么仍然只有一个基础水果类。

就是专业软件包的做法。在其他语言(如 C/C++)中,您需要使用 wards 来防止多次导入,python 会为您做到这一点。

关于python - 在python中导入,两个模块共享公共(public)资源,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20337169/

相关文章:

python - 我的异步装饰器不断返回NoneType错误

java - 无法解析 Spring boot 项目中的 Spring AOP 类型

reactjs - 尝试导入错误: 'reactstrap' does not contain a default export (imported as 'Table' )

python - 如何使 python urllib2 遵循重定向并保留 post 方法

python - Pandas groupby : get max value in a subgroup

javascript - 从多个来源导入

python - 在 virtualenv 之外找不到项目模块

android - 如何将Android源类复制到项目中?

python - 整数到字节的转换

python - 使用 python 解析带有\uxxx字符的json