我正在尝试导入我编写的脚本并打印其输出;但是我不断收到未定义输出名称的错误
#del2.py
def fun():
return print('hello world')
#script I am running
import del2
print(fun())
我收到错误NameError: name 'fun' is not defined
我没有收到导入错误,所以它会找到我的文件,并且我已经阅读了当您导入它时它也会自动运行您的文件。所以我不明白的是,为什么我不能打印该文件的输出?
您必须以这种方式导入函数:
from del2 import fun
fun() # is enough to print
两件事:
- 必须
del2.fun()
对fun()
的调用,因为未将fun
导入命名空间 fun()
返回print('hello world')
的返回值,即None
,因此您将看到fun()
打印位置的hello world
,后跟正在运行的脚本中print(fun())
的None
import del2
print(del2.fun())
将屈服
hello world
None
这里调用了两个print()
函数。 第一个是del2.fun()
,打印hello world
。 只要对del2.fun()
调用执行,就会发生这种情况。
对print()
的调用也是del2.fun()
函数的返回值,对print()
的调用的返回值是None
。
当主脚本的print(del2.fun())
收到该调用的输出时,它会打印None
因为None
是来自print()
的返回值。