Переменная в классе хранит одно и тоже значение Python
Переменная с рандомным числом в классе хранит одно и то же при вызове метода класса. Как это решить?
Вот участок кода:
class User:
def __init__(self, carts_List, your_cart_list):
self.carts_List = carts_List #Атрибут который выводит список карт с колоды
self.your_cart_list = your_cart_list #Атрибут который выводит список карт пользователя
#Метод отвечающий за роздачу карт игрокам
def give_cards(self):
while True:
random1 = randint(0, len(self.carts_List) - 1)
random2 = randint(0, len(self.carts_List[random1]) - 1)
self.your_cart_list.append(self.carts_List[random1][random2])
self.carts_List[random1].pop(random2)
if len(self.your_cart_list) == 6:
break
else:
pass
Ответы (1 шт):
Автор решения: S. Nick
→ Ссылка
Не уверен, что правильно вас понял, но попробуйте:
from random import randint
class User:
def __init__(self, carts_List, your_cart_list):
self.carts_List = carts_List
self.your_cart_list = your_cart_list
#Метод отвечающий за роздачу карт игрокам
def give_cards(self):
while True:
random1 = randint(0, len(self.carts_List) - 1)
self.your_cart_list.append(self.carts_List[random1])
self.carts_List.pop(random1)
if len(self.your_cart_list) == 6:
return self.carts_List
carts_List = [
'p6', 'p7', 'p8', 'p9', 'p10', 'p11', 'p12', 'p13', 'p14',
't6', 't7', 't8', 't9', 't10', 't11', 't12', 't13', 't14',
'b6', 'b7', 'b8', 'b9', 'b10', 'b11', 'b12', 'b13', 'b14',
'c6', 'c7', 'c8', 'c9', 'c10', 'c11', 'c12', 'c13', 'c14',
]
user1 = User(carts_List, [])
carts_List = user1.give_cards()
print('user1: ', user1.your_cart_list)
user2 = User(carts_List, [])
carts_List = user2.give_cards()
print('user2: ', user2.your_cart_list)
user3 = User(carts_List, [])
carts_List = user3.give_cards()
print('user3: ', user3.your_cart_list)
user4 = User(carts_List, [])
carts_List = user4.give_cards()
print('user4: ', user4.your_cart_list)
print('колода: ', carts_List)