将词典传递给其他功能

时间:2013-07-14 12:16:54

标签: python python-2.7 dictionary

我的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所以任何帮助都非常感谢!谢谢!

1 个答案:

答案 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永远不是一个好主意。它将覆盖内置。