Есть несколько способов сделать это. Однако я просто собираюсь предложить самый простой способ - использовать текстовый файл для хранения истории бросков внутри самого класса Dice. Обратите внимание, что con будет несколько экземпляров Dice будут иметь доступ к одному и тому же файлу истории Однако эта реализация может быть не оптимизирована, так как каждый раз, когда вы бросаете кубик, вы открываете файл и добавляете в него новые броски. Это может быть не идеально, если вам нужны миллионы рулонов. Тем не менее, я оставлю это вам для улучшения / оптимизации решения.
import random
class Dice:
list_of_rolls = []
filename = "./roll_history.txt" # a textfile to store history of rolls
def __init__(self):
try: # just to check if file exists if not create one for storing
file = open(self.filename, "r")
except FileNotFoundError:
print("File not found")
file = open(self.filename, "x") #creates file
finally:
file.close()
with open(self.filename, 'r') as opened_file_object:
self.list_of_rolls = opened_file_object.read().splitlines()
print(self.list_of_rolls)
def roll(self):
x = random.randint(1, 6)
y = random.randint(1, 6)
roll_list = (x, y)
self.list_of_rolls.append(roll_list) # updates the array with latest roll
file = open(self.filename, 'a') # 'a' for appending new rolls
# I append a newline so that the rolls are more readable in the text file
file.write('(' + str(x) + ',' + str(y) + ')\n') # appends a newline
return roll_list
def rolls(self):
return self.list_of_rolls
print(Dice().roll()) # append 2 dice rolls here
print(Dice().roll())
print(Dice().rolls()) # you should see 2 dice rolls here
попробуйте закрыть программу python и запустить ее снова,
Dice() # you should be able to see past rolls