関数のリストからランダムにサンプリングするために、Python (具体的には Psychopy) で random.sample 関数を使用しようとしています。これが私のコードです:
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)()