Я пытаюсь использовать функцию random.sample в Python (в частности, Psychopy) для случайного выбора из списка функций. Вот мой код:Синтаксис случайных функций выборки из списка в Python
from psychopy import visual, core, event, gui
import random
import string
win = visual.Window([800,600], monitor="testMonitor", units = "pix", color="white",fullscr=False)
def test1():
welcome = "blah1"
welcometext = visual.TextStim(win, text=welcome, wrapWidth=500, color="black")
welcometext.draw()
win.flip()
event.waitKeys()
def test2():
welcome = "blah2"
welcometext = visual.TextStim(win, text=welcome, wrapWidth=500, color="black")
welcometext.draw()
win.flip()
event.waitKeys()
def test3():
welcome = "blah3"
welcometext = visual.TextStim(win, text=welcome, wrapWidth=500, color="black")
welcometext.draw()
win.flip()
event.waitKeys()
mylist = [test1, test2, test3]
random_sample = random.sample(mylist,1)()
Когда я пытаюсь запустить этот код, я получаю:
TypeError: 'list' object is not callable
Я немного потерял, почему random.sample здесь не работает, поэтому любой помощь будет очень высоко оценена. Кроме того, как примечание стороны, если изменить последний бит кода для использования random.choice, то эта функция, кажется, работает прекрасно:
mylist = [test1, test2, test3]
random_choice = random.choice(mylist)()
'random.sample()' возвращает список. – stranac