当前位置: 首页 > 知识库问答 >
问题:

是_uinit\uuuu。每次我从该模块导入任何内容时都运行py?[副本]

陈博容
2023-03-14

我有一个名为核心的模块,其中包含许多python文件。

如果我这样做:

from core.curve import Curve

Does\uu init\uuuu。py被呼叫?我可以将适用于所有核心文件的导入语句移动到\uu init\uuuuu中吗。py保存重复自己?应该进入\uu init\uuuuuuu的内容。py?


共有3个答案

农诚
2023-03-14

您可以在目录中添加所有要使用的函数

- core
  - __init__.py

在此__init__. py中添加您的类和函数引用,例如

from .curve import Curve 
from .some import SomethingElse

以及您想在哪里使用您的类只需像这样引用它

from core import Curve
江礼骞
2023-03-14

是_uinit\uuuu。每次我从该模块导入任何内容时都运行py?

根据文件,在大多数情况下是的。

冯淳
2023-03-14
匿名用户

我有一个名为core的模块,其中包含许多python文件。

如果它包含python文件,那么它不是一个模块,而是一个包含python文件的目录——如果它包含一个〈代码〉\uu init\uuuuu,那么它最终就是一个包。py文件。

如果我这样做:<代码>从核心。曲线导入曲线。py被呼叫?

它从来没有被“调用”——它不是一个函数——但是它在第一次在进程中导入包或其子模块之一时被加载。然后它被存储在sys.modules中,随后的导入会在那里找到它。

我可以将应用于所有核心文件的导入语句移动到init中吗。为了避免重复我自己?

不。命名空间是每个模块,而不是每个包。无论如何,这将是一个非常糟糕的主意,在这种情况下,您所说的“重复自己”是维护代码的真正助手(显式导入意味着您毫不含糊地知道哪个符号来自哪个模块)。

初始化应该包含哪些内容。py?

从技术上讲,你可以把你想要的任何东西放在你的\uu init\uuuu中。py文件,但大多数情况下它们只是空的。一些已知用例将其用作包子模块的外观,为基于当前平台或某些环境变量的公共API选择具体实现。。。

哦,是的:这也是一个添加有关您的包(版本、作者等)的元信息的好地方。

 类似资料:
  • 问题内容: 我已尝试找到有关最佳使用还是全面的指南。我刚开始使用Python,并且正在尝试着眼于最佳实践。 基本上,我希望有人能分享他们的经验,其他开发人员有什么喜好,以及避免遇到麻烦的最佳方法是什么? 问题答案: 和之间的区别主要是主观的。选择最喜欢的一个,并在使用中保持一致。这里有一些要点可以帮助你做出决定。 优点: - 减少维护你的import报表。无需添加任何其他导入即可开始使用模块中的另

  • 我需要帮助了解如何从函数运行导入代码! 正如你所看到的,我是新来的python. time语音是另一个. py文件,当我做运行。我试图通过一个函数来运行它,如果在列表中回答:timespeech.say时间(),我相信你应该把它作为,但我不确定之后会发生什么。请帮助!

  • 问题内容: 我的内存中有一些Python文件,可能是StringIO。如何导入存储在内存中的模块文件?我不想将其保存到磁盘然后加载。 看起来像: 问题答案: 一种不错的方法是使用PEP 302中所述的自定义元导入挂钩。可以编写一个从字符串字典动态导入模块的类: 顺便说一句:如果您不想太多,而只想导入一个字符串,那么请坚持执行load_module方法。您只需要在里面。

  • 我不认为任何一种语言在导入其他源文件这样简单的事情上会像python那样让人头疼。所以问题是:我的模块导入是否需要依赖于代码的运行方式? 我有以下目录结构: 我希望从包中的另一个模块导入包中的一个模块。简单? 因此,我在中添加了以下内容: 现在,如果我从目录中运行,就可以正常工作了。另外,如果我返回一个目录并调用就可以了。看起来像是python搜索相对于给定文件的导入模块。 我看了很多资料,包括这

  • 问题内容: 据我了解,python模块永远不会导入两次,即该模块中的代码仅在首次导入时才执行。随后的import语句只需将模块添加到导入范围即可。 我有一个名为“ TiledConvC3D.py”的模块,但似乎已多次导入。我使用pdb在该模块的代码顶部打印堆栈。 这是从第一次执行模块开始的堆栈跟踪的结尾: 它将继续执行多次。但是,第二次调用的完整堆栈跟踪不会显示对的任何调用,因此不应执行这些执行:

  • 我发现了几份涉及mvn的类似报告,但没有一份涉及Gradle。问题是。 我去档案- 我刷新Gradle项目,检查文件- 因此,在阅读了我在stackoverflow上发现的问题后,这是我的build.gradle. 刷新。它仍然重置我的项目设置。 以下是gradle设置: 请帮忙。