所以,我有一個這樣的功能:爲什麼函數結束時列表的值會發生變化?
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上,所以我有一個不同的列表。