在一个文件中导入一个库并在另一个文件中使用它,而不导入

Importing a library in one file and using it in another file, without importing

有一个名为 transforms.py 的文件,其中导入了 torchvision.transforms 并定义了一些自定义转换。在另一个名为 main.py 的文件中,导入了 transforms.py

现在,为了在 main.py 中使用 torchvision.transforms.Normalize 而无需导入它,它会起作用吗(Normalize 未在 transforms.py,只导入)?如果有效,背后的原因是什么?

transforms.py:

from torchvision.transforms import *
...
Custom transformations defined
...

main.py

from data import transforms 
...
normalize = transforms.Normalize(mean=[0.5,0.5,0.5],std=[0.1,0.1,0.1])
...

是的,应该可以。原因是 import 将您正在导入的任何内容添加到当前文件的命名空间,这与您 define 函数时发生的情况完全相同,在

from module import a_function

def a_function:

两者都以 a_function 定义结束。无论哪种方式,您都可以 import 该文件并使用 that_file_name.a_function()

访问 a_function