-2

我有一个功能:

def hello_world(output):
    output.write("Hello World")

并想将这些传递给它:

file = io.open("myfile.txt", "w")
hello_world(file)
hello_world(sys.stdout)

我不知道这样是否正确。我也得到NameError: global name 'sys' is not defined 你会怎么做我想做的事?

4

5 回答 5

2

尝试添加:

import sys

到文件的顶部

于 2013-07-29T18:08:23.873 回答
2

NameError:未定义全局名称“sys”

import sys在你的 python 文件的顶部修复

顺便说一句,将变量命名为fileor listor dictor 几乎任何默认类型是一个可怕的想法。

于 2013-07-29T18:09:16.067 回答
1

您应该在脚本的开头添加这一行:

import sys
于 2013-07-29T18:07:56.810 回答
1

你忘了import sys

sys是 python - python docs的“系统特定参数和函数”模块。

这样做是获取系统特定的标准输出管道,以便将 python 文件输出. 就像在流中它可以写入:)。

File 和sys.stdout, sys.stdinandsys.stderr都是要写入的流。

一般来说,如果它说NameError您忘记导入某些东西或者您没有正确定义某些东西:)

您可能想将其重写为 opens_file 或类似的东西,File而其他一些类似的词(如果您这样做了random = 3)永远不好解决,因为它们被用作各种 Python 对象或内部构件的名称 - 并且您要确保您没有即使 Python 应该巧妙地解决这些冲突 :)

于 2013-07-29T18:08:06.393 回答
1

您需要导入sys模块:

import sys

之后就可以使用sys.stdout了。

于 2013-07-29T18:08:06.690 回答