我有一个将文件解析为列表的函数。我正试图返回该列表,以便在其他函数中使用它。
def splitNet():
network = []
for line in open("/home/tom/Dropbox/CN/Python/CW2/network.txt","r").readlines():
line = line.replace("\r\n", "")
line = string.split(line, ',')
line = map(int, line)
network.append(line)
return network
当我试图打印函数外部的列表(用于调试)时,会出现以下错误:
NameError: name 'network' is not defined
有什么简单的我做错了吗?或者有没有更好的方法在函数之间传递变量而不使用全局变量?
函数中变量的名称在外部不可见,因此需要这样调用函数:
其他几点注意事项:
readlines
;函数本身就是一个迭代器。with
语句。str.split
,这比string.split
更易读和理解。总之,您的代码应该是这样的:
不能在定义变量的函数范围之外访问变量。
只需这样做:
我假设您没有将返回值赋给作用域中的变量。
你不能这样做
相反,你会
或者就这件事
否则,可以在splitNet函数之外声明network,并使其成为全局的,但这不是推荐的方法。
相关问题 更多 >
编程相关推荐