0

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

4

1 回答 1

2

定义函数时必须添加括号(),即使它不带任何参数:

def main():
    ...

def X():
    ...

另外,因为X()返回一些东西,你必须将输出分配给一个变量。所以你可以做这样的事情main

def main():
    mydict = X()
    # You now have access to the dictionary you created in X

然后,您可以return mydict在 main() 中使用它,这样您就可以在脚本末尾使用它:

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。它将覆盖内置的。

于 2013-07-14T12:18:16.790 回答