gpt4 book ai didi

python导入嵌套类速记

转载 作者:行者123 更新时间:2023-12-01 11:39:28 24 4
gpt4 key购买 nike

如何使用“as”速记导入嵌套包?

这个问题类似于 importing a module in nested packages只有嵌套在同一个 .py 文件中,而不是跨文件夹。

在 foo.py 中(所有 python 文件都在同一个包中,并且是 3.4 版):

class Foo:
class Bar:
...

我可以在另一个 .py 文件中访问这些子类:
from . import foo
...
bar = foo.Foo.Bar()

我想做的事:
from . import foo.Foo.Bar as Bar  # DOES NOT WORK: "unresolved reference" error.
...
bar = Bar() # saves typing.
bar2 = Bar()
...

有没有办法做到这一点?

最佳答案

嵌套 Python 类没有什么意义。除了嵌套命名空间之外,这样做没有任何特殊含义。很少有必要这样做。如果您需要生成额外的命名空间,只需使用模块即可。

您不能直接导入嵌套类;你只能导入模块全局变量,所以 Foo在这种情况下。您必须导入最外层的类并创建一个新引用:

from .foo import Foo
Bar = Foo.Bar
del Foo # remove the imported Foo class again from this module globals
del Foo完全是可选的。上面确实说明了为什么你不想从一开始就嵌套类。

关于python导入嵌套类速记,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22885489/

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