Python 试图从一个子例程到另一个子例程获取列表

Python 试图从一个子例程到另一个子例程获取列表,python,list,global-variables,subroutine,Python,List,Global Variables,Subroutine,我正在从一个文件的数据创建一个列表,我不能在它的原始子例程之外使用该列表,我如何才能使它成为全局的,这样我就可以在任何地方使用它并更改它 def selecting_qs(): global main_list dif = difficulty.get() print(main_list,dif) #main list order: #Question ID , Difficulty , Topic , Answer ID , Picture ID

我正在从一个文件的数据创建一个列表,我不能在它的原始子例程之外使用该列表,我如何才能使它成为全局的,这样我就可以在任何地方使用它并更改它

def selecting_qs():
    global main_list
    dif = difficulty.get()
    print(main_list,dif)


#main list order:
#Question ID  ,  Difficulty  ,  Topic  ,  Answer ID  ,  Picture ID  ,  Frequency 
def main_file_info():
    main_file = open("main_file.txt","r")
    main_file_info=main_file.readlines()
    for line in main_file_info:
        main_list=line.split("@")

    main_list=main_list[1:len(main_list)-1]
    main_file.close()

    return(main_list)

要传递函数中使用的变量,只需返回它们,分配它们,然后通过他们。在当前脚本中,这将如下所示:

def selecting_qs(a_list):
    # global  <-- main_list this is not needed and can lead to problems!
    dif = difficulty.get()
    print(a_list, dif)


#main list order:
#Question ID  ,  Difficulty  ,  Topic  ,  Answer ID  ,  Picture ID  ,  Frequency 
def main_file_info():
    main_file = open("main_file.txt","r")
    main_file_info=main_file.readlines()
    for line in main_file_info:
        main_list=line.split("@")

    main_list=main_list[1:len(main_list)-1]
    main_file.close()

    return main_list  # returning the item(s) thus making them accessible from the outer scope

my_main_list = main_file_info()  # assigning the item(s) to a variable
selecting_qs(my_main_list)  # passing the item(s) to another function
def选择(列表):

#全局最佳和最安全的方法是
按您的方式返回它(注意,您可以返回多个内容),将它分配给一个变量(函数调用,您没有显示的这段代码),然后将它传递给下一个要使用它的函数(在这种情况下
选择_qs
),如何从返回中获取列表?只需main_list=main_file_info()?是。确切地无论函数调用返回什么,都会为变量赋值。在这种情况下,
main_list
oh这很有效谢谢你当你得到一个解决方案时,请记得投票给有用的东西并接受你最喜欢的答案(即使你必须自己写,尽管@Ev.Kounis应该写),这样堆栈溢出可以正确地存档问题。