我有一个功能:
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
你会怎样做我想做的事?
答案 0 :(得分:2)
尝试添加:
import sys
到文件顶部
答案 1 :(得分:2)
NameError:未定义全局名称“sys”
由python文件顶部的import sys
修复
另外,it's a horrible idea to have variables named file
or list
or dict
or pretty much any default type。
答案 2 :(得分:1)
您应该在脚本的开头添加此行:
import sys
答案 3 :(得分:1)
你忘了import sys
sys是python的“系统特定参数和函数”模块 - python docs。
这样做是为python文件获取系统特定的标准输出管道,以输出到。如在流中它可以写入:)。
文件和sys.stdout
,sys.stdin
和sys.stderr
都只是要写入的流。
一般情况下,如果它显示NameError
您忘记导入某些内容,或者您没有正确定义内容:)
您可能想要将其重写为opens_file等,File
和其他类似的单词(如果您执行random = 3
)从来都不好解决,因为它们被用作各种Python对象的名称或内部 - 你想要确保你没有碰撞,即使Python应该巧妙地解决这些问题:)
答案 4 :(得分:1)
您需要导入sys
模块:
import sys
然后您可以使用sys.stdout
。