导入/运行另一个 python 文件并打印其输出时出现问题



我正在尝试导入我编写的脚本并打印其输出;但是我不断收到未定义输出名称的错误

#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

两件事:

  1. 必须del2.fun()fun()的调用,因为未将fun导入命名空间
  2. 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()的返回值。

最新更新