gpt4 book ai didi

python - 如何在 __init__.py 中导入包模块作为 __main__ 别名?

转载 作者:行者123 更新时间:2023-11-28 22:59:22 25 4
gpt4 key购买 nike

我想使用 __init__.py 将包内的所有模块作为别名导入 __main__ 中,以便可以简单地从交互模式调用它们。例如,这是一个示例文件树:

foobar/
__init__.py
foo.py
bar.py

我希望能够从 python 解释器导入包并使用定义的别名访问所有模块,如下所示:

>>> import foobar
>>> <module 'foobar' from 'C:\...'>
>>> f.func()
>>> b.func()

这将要求 __init__.py 包含以下内容:

# __init__.py

from . import foo as f
from . import bar as b

# these will not work
__main__.f = f
__main__.b = b

我怎样才能让它工作?

编辑

我不想使用 from foobar import * 因为它不允许我使用别名。

每次我启动交互模式时,为每个模块输入 from foobar import foo as f 效率不高,因为可能有数百个模块。

最佳答案

在你的 __init__.py 文件中包含如下内容:

import foo
import bar as b

然后在交互 session 中使用:

>>> from foobar import *
>>> value = foo.some_func()
>>> instance = b.SomeClass()

我还应该提到 from foobar import * 被大多数 python 程序员认为是糟糕的风格,虽然这在交互式 session 中无关紧要,但如果您想在模块或脚本的首选方式是:

from foobar import b, foo

关于python - 如何在 __init__.py 中导入包模块作为 __main__ 别名?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13090427/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com