相关疑难解决方法(0)

导入__init__.py和`import as`语句

我遇到了在包的模块中导入__init__.py和使用import as绝对导入的问题.

我的项目有一个子包,在其中__init__.py我将一个类从一个模块"提升"到带有from import as语句的子包级别.该模块使用绝对导入从该子包导入其他模块.我收到这个错误AttributeError: 'module' object has no attribute 'subpkg'.

结构:

pkg/
??? __init__.py
??? subpkg
?   ??? __init__.py
?   ??? one.py
?   ??? two_longname.py
??? tst.py
Run Code Online (Sandbox Code Playgroud)

pkg/__ init__.py为空.

pkg/subpkg/__ init__.py:

from pkg.subpkg.one import One
Run Code Online (Sandbox Code Playgroud)

pkg/subpkg/one.py:

import pkg.subpkg.two_longname as two

class One(two.Two):
    pass
Run Code Online (Sandbox Code Playgroud)

pkg/subpkg/two_longname.py:

class Two:
    pass
Run Code Online (Sandbox Code Playgroud)

pkg/tst.py:

from pkg.subpkg import One

print(One)
Run Code Online (Sandbox Code Playgroud)

输出:

$ python3.4 -m pkg.tst
Traceback (most recent …
Run Code Online (Sandbox Code Playgroud)

python python-3.x

19
推荐指数
1
解决办法
5702
查看次数

为什么使用“from module import A as A”而不是“from module import A”

在阅读fastapi的源代码时,这一行让我很模糊:

from starlette.testclient import TestClient as TestClient
Run Code Online (Sandbox Code Playgroud)

为什么不只是:from starlette.testclient import TestClient

python mypy

9
推荐指数
1
解决办法
337
查看次数

python中以下导入样式有区别吗?

我正在浏览代码库并注意到以下导入模块的样式
import torch.nn as nn

在我个人的工作中,我一直使用以下方法
from torch import nn

这两种导入方式有什么区别吗?

python import python-import

8
推荐指数
0
解决办法
178
查看次数

在python中'import ab as b'和'from a import b'之间有什么区别?

我一直使用from a import b,但最近一个团队在工作决定一个模块移动到一个新的命名空间,并发出警告通知,告诉人们,以取代import bimport a.b as b.

我从未使用过import as,我能找到的唯一文档似乎表明它不支持import a.b as b,但显然它确实如此.

但实际上是否存在差异,如果是这样的话?

python

7
推荐指数
1
解决办法
1221
查看次数

标签 统计

python ×4

import ×1

mypy ×1

python-3.x ×1

python-import ×1