gpt4 book ai didi

python - 在 python 中, 'import foo.bar as bar' 和 'from foo import bar' 有什么区别?

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

我在 pyTorch 和 matplotlib 中看到了这个约定:

import torch.nn as nn
import torch.optim as optim

import matplotlib.pyplot as plt

为什么要将整个路径 (module.submodule) 作为别名导入而不只是子模块,这是有原因的吗?如果我这样导入有什么区别:

from torch import nn
from torch import optim

from matplotlib import pyplot as plt

编辑:所以对于一般情况:

import foo.bar as bar    # [1]
from foo import bar # [2]

是否存在引用 bar 的代码,这样它将以 [1] 而不是 [2] 运行(反之亦然) )? IE。这两种导入方式之间有功能区别吗?

最佳答案

在幕后,所有导入语句基本上都映射到内置的 __import__ 例如:

import torch.nn as nn

成为

nn = __import__("torch.nn", globals(), locals(),  [], 0)

类似的:

from torch import nn

成为

nn = __import__("torch", globals(), locals(), ["nn"], 0)

略有不同但功能相同。

引用:https://docs.python.org/3/library/functions.html#import

关于python - 在 python 中, 'import foo.bar as bar' 和 'from foo import bar' 有什么区别?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/61471924/

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