繁体   English   中英

在 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

然后它就会起作用。

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

因为有 function 这样的:

if __name__ == '__main__':

用于不从模块返回结果? 对我来说,当我不能将整个文件作为导入运行时,这没有意义吗?

我知道这是一个模糊的问题,但我感谢你的时间

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

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

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

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM