我对蟒蛇还是比较陌生的,所以不要因为误解而把我钉死在十字架上。当变量hand被发送到另一个更新并返回它的函数时,我很难复制它的初始值。将variable(hand)的返回值作为复制的variable(hand2)的值,当我希望variable(hand2)是variable(hand)的初始值时
def play_game(word_list):
word_list = load_words
while True:
answer = input('\nEnter \'n\' for a new random hand, \'r\' to play the last hand, or \'e\' to exit the game: ')
if answer == 'n':
hand = deal_hand(HAND_SIZE) #Here i get a randomly generated hand
hand2 = hand #I want to save the randomly generated hand before it's updated
play_hand(hand,word_list) #This function updates the hand
elif answer == 'r':
play_hand(hand2,word_list) #I want to play the un-updated hand but i get the updated hand instead有没有办法使variable(hand2)等于variable(hand)的初始值?
谢谢
发布于 2018-05-04 01:34:37
尝试使用copy.deepcopy()
import copy
hand2 = copy.deepcopy(hand)正如copy的文档所解释的:
Python中的赋值语句不复制对象,它们在目标和对象之间创建绑定。对于可变或包含可变项的集合,有时需要一个副本,以便一个副本可以更改一个副本而不更改另一个副本。
https://stackoverflow.com/questions/50165912
复制相似问题