我的python代码中有一个main函数和其他几个函数。在我的主要内容中,我访问了另一个创建字典的函数。在我的python代码的末尾是一个if语句,它将文本写入文本文件。我无法弄清楚如何访问从以前的函数创建的字典。
以下是我的代码目前如何工作的模型
def main:
# "does something"
call function X
# does other stuff
def X:
#create dictionary
dict = {'item1': 1,'item2': 2}
return dictionary
....
.... # other functions
....
if __name__ == "__main__":
# here is where I want to write into my text file
f = open('test.txt','w+')
main()
f.write('line 1: ' + dict[item1])
f.write('line 2: ' + dict[item2])
f.close()
我刚开始学习python所以任何帮助都非常感谢!谢谢!
答案 0 :(得分:2)
在定义函数时,您必须添加括号()
,即使它不带任何参数:
def main():
...
def X():
...
另外,因为X()
返回了某些内容,所以必须将输出分配给变量。所以你可以在main
中执行类似的操作:
def main():
mydict = X()
# You now have access to the dictionary you created in X
如果你想在main()中,你可以return mydict
,所以你可以在脚本的末尾使用它:
if __name__ == "__main__":
f = open('test.txt','w+')
output = main() # Notice how we assign the returned item to a variable
f.write('line 1: ' + output[item1]) # We refer to the dictionary we just created.
f.write('line 2: ' + output[item2]) # Same here
f.close()
您无法在函数中定义变量,然后在函数外部的其他位置使用它。该变量仅在相对函数的局部范围内定义。因此,返回它是一个好主意。
顺便说一句,命名字典dict
永远不是一个好主意。它将覆盖内置。