在 python/jupyter 上导入模块

Importing module on python / jupyter

我制作了非常简单的 test.py 文件,我想将它用作模块:

def add(a,b):
    return a+b

def mult(a,b):
    return a*b

当我 运行 另一个笔记本并尝试导入它时,导入“成功”。

import numpy as np
import test 

x= int(input("enter value x"))
y= int(input("enter value x"))

array1= np.array([x,y])
array2= np.array([-x,-y])  

answer1 = add(x,y)
answer2 = mult(x,y)

print(answer1, answer2)

但是,当我 运行 我的代码返回时:

"NameError: name 'add' is not defined"

我可以通过编辑我的代码来绕过这个:

from test import add, mult

然后就可以了。

我不太明白为什么我不能运行整个文件?有人可以启发我吗?

因为有这样的功能:

if __name__ == '__main__':

那个用来不return结果的模块?对我来说,当我无法 运行 整个文件作为导入时,这毫无意义?

我知道这个问题有点含糊,但感谢您抽出时间

如果你想使用 import test 并得到你想要的东西,那么你想写:

answer1 = test.add(x,y)
answer2 = test.mult(x,y)

它会起作用的。这是因为您刚刚将模块导入到当前命名空间中,您需要使用该模块的名称后跟 . 访问该模块的内容,即在您的情况下为 test. 。如果您使用 from test import add, mult,那么这意味着您不会将模块 test 而是函数 add, mult 导入您的命名空间,因此可以直接访问它们。