【问题标题】:Using "from ... import" to import a function directly from a submodule使用“from ... import”直接从子模块导入函数
【发布时间】:2021-11-25 12:57:16
【问题描述】:

我试图了解 Python 的所有关于导入的语法逻辑。以函数scipy.signal.ricker 为例。功能应该无关紧要。

要使用 Python 的这个功能(根本没有任何导入)我必须

import scipy

然后我可以通过

scipy.signal.ricker(...)

我也可以

from scipy import signal

并通过

使用它
signal.ricker(...)

是否有任何选项可以直接导入ricker,这样我只需要写ricker(...),如果它进一步嵌套一层、两层或十层,我将如何导入其他东西?

【问题讨论】:

    标签: python import nested


    【解决方案1】:

    使用. 运算符搜索模块/子模块的内容。

    你的情况

    from scipy.signal import ricker
    

    然后通过ricker(...)简单地使用它

    欲了解更多信息:What does a . in an import statement in Python mean?

    【讨论】:

    • 非常感谢。对于第一个选项,显示错误: ModuleNotFoundError: No module named 'scipy.signal.ricker' 您的解释引发了另一个问题。 “搜索”模块/子模块的内容是什么意思?是否会列出整个(子)模块内容?
    • 是的,删除了它。这仅适用于本地软件包。
    • 列出的整个子模块内容是什么意思?
    • 您写道:“搜索内容...” 我想知道是否会显示一个包含例如 scipy 内容的列表。
    • 一些 IDE 可以引用存根并解决这个问题。有关实用的实现,请参阅stackoverflow.com/a/65193885/4861361
    【解决方案2】:

    你可以使用:

    from scipy.signal import ricker
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2014-04-10
      • 2011-07-27
      相关资源
      最近更新 更多