我正在从文件中的数据创建一个列表,但我无法在其原始子例程之外使用该列表,我怎样才能将其设为全局,以便我可以在任何我想要的地方使用它并更改它?
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
如果有任何 Unresolved 问题,请告诉我。
关于python - 尝试从一个子例程获取另一个子例程的列表,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40895180/