Как реализовать следующий класс? Я хочу создать класс, который выполняет методы в случайном порядке при вызове и после вызова всех методов после сброса массива и перестановки?Python - класс класса функций
import random
class RandomFunctions(object):
def f1():
print("1")
def f2():
print("2")
def f3():
print("3")
f = [f1, f2, f3]
def __init__(self):
super(RandomFunctions, self).__init__()
random.shuffle(self.f)
def execute(self):
func = self.f.pop()
if not self.f:
reset f
return func
def main():
f = RandomFunctions()
for i in range(6):
f.execute()()
main()
Эти две идеи, которые я придумал, но я все еще интересно, что было бы самым разумным способом реализации такого рода класса?
discard = []
n = 0
def execute(self):
func = self.f[self.n]
self.n += 1
if self.n == len(self.f):
self.n = 0
random.shuffle(self.f)
return func
def execute_with_discard(self):
func = self.f.pop(0)
discard.append(func)
if not self.f:
f = discard[:]
discard = []
random.shuffle(self.f)
return func
Подсказка: ваш конструктор уже содержит большинство методов 'reset()'. Фактор это. Не забудьте заполнить исчерпанный список. Модуль 'copy' может помочь вам скопировать список, или вы можете использовать' copy_of_list = source_list [:] 'idiom. – 9000