所以,我有一个这样的功能:为什么函数结束时列表的值会发生变化?
def Undo_Action(expenses_list ,expenses_lists_que,current_position):
'''
Undo the last performed action
Input:expenses_list - The current list of expenses
expenses_lists_que - The list containing the instances of last lists
current_possition- The posion in the que where our current expenses_list is
'''
if len(expenses_lists_que)>0:
expenses_list=deepcopy(expenses_lists_que[current_position-1])
current_position=current_position-1
else:
print("You din not performed any actions yet!")
print ("Label 1:" ,expenses_list)
return current_position
而且我把它在这个函数
def Execute_Main_Menu_Action(expenses_list, action, expenses_lists_que,current_position):
'''
Executes a selected option from the main menu
Input: The expenses list on which the action will be performed
The action which should be exectued
Output: The expenses list with the modifications performed
'''
if action == 1 :
Add_Expense(expenses_list)
elif action== 5:
Show_Expenses_List(expenses_list)
elif action== 2:
Remove_Expense_Menu(expenses_list)
elif action== 3:
Edit_Expense_Menu(expenses_list)
elif action==4:
Obtain_Data_Menu (expenses_list)
elif action==6:
current_position=Undo_Action(expenses_list ,expenses_lists_que,current_position)
print("Label 2:" , expenses_list)
return current_position
为什么列表expenses_list失去了它的价值,当函数Undo_Action结束。我的意思是,当我在标签1上打印费用表时,将执行修改,但是当函数退出时,修改不会保留在标签2上,所以我有一个不同的列表。