Я не могу понять, почему переменная в классе не обновляется.
class Pile:
def __init__(self, cards):
self.cards = cards
def __str__(self):
result = ' '.join(self.cards)
return result
def __repr__(self):
return f'Pile({self.cards})'
def flip(self):
self.cards.reverse()
return eval(f'Pile({self.cards})')
Это часть моего кода. И когда я запускаю этот код ниже,
cards = Pile(['AH', '3S', 'KC'])
print(cards)
# AH 3S KC
cards
# Pile(['AH', '3S', 'KC'])
cards.flip().flip()
# Pile(['AH', '3S', 'KC'])
print(cards)
Я ожидал 'AH 3S K C', но я получил 'K C 3S AH'. «K C 3S AH» является результатом cards.flip () .
Я думаю cards.flip (). Flip () эта часть не не работает, потому что когда я написал cards.flip () и снова cards.flip () , это работает именно так, как я хотел. Я не знаю, в чем проблема этого. Не могли бы вы объяснить по этому поводу? Спасибо за чтение.