哪种做法更好 - 全球导入或本地导入

2024-01-30

我正在 django 中开发一个应用程序,我怀疑在全局级别导入库是否比在本地(每个函数)级别导入库对内存或性能有任何影响。如果按功能或视图导入,则导入单独需要的模块可以节省空间,对吗?或者这样做有什么负面影响吗?


您肯定已经注意到,几乎所有 Python 代码都在文件顶部进行导入。这是有原因的:导入的开销很小,而且您很可能会在进程生命周期的某个时刻导入代码,因此您不妨将其移开。

在函数级别导入的唯一充分理由是避免循环依赖。

Edit您的评论表明您还不了解 Web 应用程序通常如何工作,至少在 Python 中是这样。他们不会为每个请求启动一个新流程并从头开始导入代码。相反,服务器根据需要实例化进程,每个进程都会服务许多请求,直到它最终被杀死。因此,很可能在该生命周期内,所有进口最终都将被需要。

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

哪种做法更好 - 全球导入或本地导入 的相关文章

随机推荐

  • 如何在 Android 中访问 Web API 方法的返回值?

    在对如何做到这一点感到困惑之后 可以看出here https stackoverflow com questions 22797194 how to call a restful method from android and here h
  • 使用 asp.net ajax 时出现函数未定义错误

    我试图通过以下代码通过 asp net ajax 调用 Web 服务 namespace MCTS70515AJAX public static class HR public static int GetEmployeeCount str
  • 为 GitHub 设置 SSH 密钥

    我正在跟进这些说明 http help github com mac set up git 了解如何设置 SSH 密钥以用于 GitHub 说明会告诉您删除当前的 ssh目录并在该 ssh 目录中创建新密钥 我无法执行此操作 因为我的电脑中
  • AngularJS 中的子菜单(展开/折叠树)

    在过去的一天里 我一直在寻找使用 Angular 来控制带有子菜单的菜单列表的最佳方法 使用 jQuery 您可以在特定类型的元素 例如 li 并向其子元素添加一个类以打开菜单 我正在尝试做与此页面上的菜单相同的事情http geedmo
  • Postgres:将数据从一个数据库的公共模式移动到另一个数据库的新模式的最佳方式

    我是 Postgres 新手 刚刚发现我无法在一个 SQL 查询中访问不同数据库的数据 并且还学习了Postgres中模式的概念 现在 我有两个数据库 db1 和 db2 两者在其公共模式中都有相同名称的表 现在 我想在 db1 中创建一个
  • npgsql 和实体框架代码优先设置问题

    我最近收到的错误是 ERROR 42P01 relation dbo MigrationHistory does not exist 但我确信这只是因为之前的某些事情没有正确设置 我目前正在尝试首先设置实体框架 4 4 代码以使用 Npgs
  • 如何使用 SpringBootTest 测试某个方面?

    我使用 Spring Boot 2 1 6 RELEASE 在 Spring 中创建了一个简单的方面 它基本上记录了一个方法所花费的总时间 Aspect Component public class TimeLoggerAspect pri
  • JobLauncherTestUtils 在尝试测试 Spring Batch 步骤时抛出 NoUniqueBeanDefinitionException

    我正在使用 Spring boot 和 Spring Batch 我定义了不止一项工作 我正在尝试构建 junit 来测试作业中的特定任务 因此我使用 JobLauncherTestUtils 库 当我运行测试用例时 我总是得到 NoUni
  • Json 字符串数组转为 Java 字符串列表

    我有一个返回字符串列表的网络服务 仅返回字符串列表 string1 string2 string3 我怎样才能把它转换成ArrayList
  • Linux 容器上使用 screen -x 命令时出现“必须连接到终端错误”

    我正在使用带有 Proxmox 4 的 Linux 容器 当我连接到 Ubuntu 16 04 容器时 pct enter
  • Java 和 Python 一起出现在单个 Google App Engine 项目中

    我目前有一个在 Google App Engine 上运行的 Java 应用程序 但我想添加 Python 模块的 SearchableModel 提供的功能 当然是搜索功能 是否可以在与 Java 代码相同的项目中运行 python 代码
  • Pyinstaller.exe 未产生预期结果

    这是我第一次使用 pyinstaller 在 Windows 机器上构建 py 的 exe 我已成功生成 exe 但是当我运行代码时 它不会生成我的代码应生成的 csv 文件 附带说明一下 当我在 IDE 中运行脚本时 它成功生成了我期望的
  • OpenGL 渲染器不适用于冰淇淋三明治

    您好 我正在使用 OpenGL ES 1 0 构建 Android 游戏 一切都工作正常 直到我的 Transformer 平板电脑更新为冰淇淋三明治 现在 任何使用 OpenGL 渲染的内容都不会显示在屏幕上 我环顾四周 发现了Textu
  • 后期绑定与多态性 - 有什么区别?

    我见过两者互换使用 但它们真的意味着相同吗 根据我的理解 多态性延伸了这样一个事实 即您可以通过子类的实例交换类的实例 而后期绑定意味着当您调用实例的方法时 类型决定调用哪个方法 子类 超类 维基百科有一篇关于此的非常好的文章 http e
  • Ajax woocommerce 在弹出窗口中跟踪订单,无需重新加载页面

    我通过短代码将订单跟踪放在弹出窗口中 但问题是单击并发送请求后 页面将重新加载并且弹出窗口关闭 我希望通过 Ajax 在同一个弹出窗口中显示请求的结果 并且不重新加载页面 我搜索了整个网络 但找不到方法 如果有人知道如何做到这一点 请指导我
  • 在 Swift 中创建 UIView 的副本

    因为对象是引用类型 而不是值类型 如果您设置UIView等于另一个UIView 视图是同一对象 如果您修改其中一个 您也会修改另一个 我有一个有趣的情况 我想添加一个UIView作为另一个视图中的子视图 然后我进行一些修改 并且这些修改不应
  • c# 更改AD密码Directoryservices

    我试图让下面的代码工作 问题是 有时可以 有时不可以 当失败时 会出现错误 0x800704F1 系统无法联系域控制器来服务身份验证请求 我想说大约 90 的情况都会失败 我尝试通过将其添加到 contexttype 后面来给它一个静态 D
  • 什么是“.”和 Windows 目录中的“..”?

    我正在编写一个程序来列出 Windows 目录中的所有文件 我只是使用提供的文件管理功能 但我对结果很好奇 Target file is The first file found is The next file found is The
  • 触发问题,更新面板不起作用?

    我创建动态 LinkBut ton 并将 LinkBut ton 的单击触发器添加到 UpdatePanel 现在 当我第一次单击任何一个链接按钮时 触发器运行良好 并显示我的选择 没有回发 之后 我单击其他 LinkBut ton 所有页
  • 哪种做法更好 - 全球导入或本地导入

    我正在 django 中开发一个应用程序 我怀疑在全局级别导入库是否比在本地 每个函数 级别导入库对内存或性能有任何影响 如果按功能或视图导入 则导入单独需要的模块可以节省空间 对吗 或者这样做有什么负面影响吗 您肯定已经注意到 几乎所有