导入包含“导入”命令的模块有什么好处或坏处?

2023-11-30

如果我要创建一个名为的模块,例如imp_mod.py里面包含了我经常使用的所有(主观使用的)相关模块。

将此模块导入到我的主程序中是否允许我访问其中包含的导入imp_mod.py?

如果是的话,这会带来什么缺点?

我想一个主要优点是减少导入时间,尽管只节省了几秒钟......


是的,它允许您访问它们。如果您将这些导入放入imp_mod.py:

from os import listdir
from collections import defaultdict
from copy import deepcopy

然后,您可以在另一个文件中执行此操作,例如,myfile.py:

import imp_mod
imp_mod.listdir
imp_mod.defaultdict
imp_mod.deepcopy

您关于减少导入时间的看法是错误的,因为发生的情况恰恰相反。 Python 需要导入imp_mod然后再导入其他模块,而如果您在中导入这些模块,则不需要第一次导入myfile.py本身。如果您在另一个文件中执行相同的导入,它们将已经在缓存中,因此下一次导入实际上不会花费任何时间。

这里真正的缺点是可读性较差。谁看谁imp_mod.listdir例如,会问自己这个方法到底是什么以及为什么它与那个方法同名os模块的方法。当他不得不打开imp_mod.py只是为了发现这是同样的方法,好吧,他可能会不高兴。我不会。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

导入包含“导入”命令的模块有什么好处或坏处? 的相关文章

随机推荐

  • 在 SELECT 中选择行作为列[重复]

    这个问题在这里已经有答案了 可能的重复 如何选择列作为行 我有一张带有 ID 的桌子 例如 Table 1 2 3 4 5 and so on 我有这个疑问 选择A B 这里我需要选择 Id 作为列 来自我的表 所以结果将是 A B 1 2
  • x86 GNU 汇编器奇怪的变化段错误

    下面的 x86 汇编代码可以很好地编译 并且它曾经在我学校的 Linux 服务器上完美运行 但是当将相同的代码应用到我的 Linux 虚拟机 ubuntu 14 04 时 突然会导致分段错误 堆栈约定是否发生变化 这是 GNU 汇编器问题吗
  • 更改 TextView 中的文本字距或间距?

    我有一个要求 TextView 中的字母需要间隔远一些 不幸的是 我找到的大多数资源似乎都表明这是不可能做到的 至少不容易做到 到目前为止 明显的解决方案是 在字符串中的字符之间添加空格 改为 A B C 的 ABC 当然 如果空间再多一点
  • 在函数中找不到 PHP 全局变量 [重复]

    这个问题在这里已经有答案了 可能的重复 PHP 中的全局变量 我有一个类似的 PHP 脚本 global var1 function func1 var1 gt something var1 not found why 我必须在每个函数中执
  • 统计普罗米修斯发出的警报数

    我有 Prometheus 定义了一些警报规则 我想获得有关 Prometheus 发出的警报数量的统计数据 我试图计算用 grafana 触发警报的次数 但它不起作用 SUM ALERTS alertname XXX alertstate
  • SwiftUI - AppStorage 不适用于 GeometryReader

    这是一个简单的例子 您可以创建新的 SwiftUI iOS 项目并将其复制到 ContentView 文件 import SwiftUI struct Settings static let onOff onOff struct Conte
  • 如何让CSS Grid最后一行占用剩余空间

    我有一个行数可变的网格 我希望最后一个网格的高度为 1fr 像这样的事情 有什么办法可以做到这一点吗 你可以使用 flex 来实现这一点 父容器应该有display flex 我们想垂直使用它 所以我们将像这样改变弯曲方向flex dire
  • 如何使用 ctypes python 指针更改结构体字段

    下面是我使用 ctypes 访问 dll 值的代码 我的目的是存储结构字段地址 每当结构中的值发生变化时 我都可以访问地址并获取更改后的值 DUMMY DLL PATH dummyModel dll class MyStruct ctype
  • HTML 5 API:我可以在上传之前检查我的 csv 文件是否包含某些列吗?

    我正在制作一个网页 使用 HTML5 文件上传 API 将 csv 文件上传到服务器 但在上传之前 我想验证 csv 是否包含某些列 例如 我需要一个名为 id 的列 如果该列不存在 我不想上传它 目前我正在等待文件完全上传到服务器 并检查
  • 尝试使用 Window.FEATURE_CUSTOM_TITLE 但出现异常:您无法将自定义标题与其他标题功能结合起来。

    我正在尝试使用自定义标题在标题栏上包含图像按钮 我从这篇文章中得到了很多帮助 android 将按钮添加到应用程序的标题中 但无法让它为我的 ListActivity 工作 简而言之 以下是我所拥有的 我在 AndroidManifest
  • Google Map Lite 模式 moveCamera 到 lat lng 边界添加了不需要的地图填充

    我希望地图相机移动到我的 LatLngBounds 所以我将地图片段添加到布局中BaseExpandableListAdapter s getChildView and onMapReady I ll moveCamera to LatLn
  • 是否可以更改 JQuery JQuery UI 自动完成生成的 Url?

    我正在使用 JQuery JQueryUI 的自动完成代码 它转到我提供的网址 以查找答案 但附加 term
  • 在 Java 中使用 JXL 复制工作表

    我想将现有 XLS 文档中的一张表复制到新文档的新位置 我怎样才能用 JXL 做到这一点 Workbook w1 Workbook getWorkbook new File ExistingDocument xls settings Wri
  • 客户端分页在智能表中不起作用

    所以我得到了一个智能表 用于重新加载整个数据集 我需要它来绘制图表 但我不希望所有数据立即渲染 太多 所以在文档中有一个叫做 客户端分页 但由于某种原因这似乎不起作用 objectDataArr 0 保存整个数据集 我的模拟是 div cl
  • Java 8 中接口方法的隐式说明符/修饰符是什么?

    我知道接口方法是隐式的public Java 文档教程 says All abstract default and static接口中的方法有 隐含地public 因此您可以省略 public 修饰符 Java 8 中隐式声明了抽象 静态和
  • 将复选框列表添加到 UIAlertController

    我正在与UI警报控制器 现在我可以通过以下代码列出一个项目 UIAlertController controller UIAlertController alertControllerWithTitle Beds message prefe
  • PE 文件中没有 .BSS

    这是简短的控制台应用程序示例 static char buffer 4096 int main for int i 0 i lt 4096 i buffer i 1234 return 0 据我了解 编译器生成的 exe 文件应包含 bss
  • 将变量从 Main 函数传递到另一个 C# 类

    我正在用我的头撞墙 我想重复使用 C 控制台应用程序内的几个变量 但是 我一生都不能在另一个类中重复使用这些变量 我希望您能提供任何帮助或指示 我已经搜索了很长一段时间 但我完全被难住了 编辑 是的 变量位于我的 Main 函数内 抱歉忽略
  • GetFields 返回空数组

    有人能看到我在下面做错了什么吗 该类型具有服务方法尝试访问的公共属性 那么为什么反射没有获取它呢 Public class SomeClass private YetAnotherClass yetAnotherClass public S
  • 导入包含“导入”命令的模块有什么好处或坏处?

    如果我要创建一个名为的模块 例如imp mod py里面包含了我经常使用的所有 主观使用的 相关模块 将此模块导入到我的主程序中是否允许我访问其中包含的导入imp mod py 如果是的话 这会带来什么缺点 我想一个主要优点是减少导入时间