Я пытаюсь использовать функцию random.sample в Python (в частности, Psychopy) для случайной выборки из списка функций. Вот мой код:
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()
возвращает список. - person stranac   schedule 23.11.2013