我有这个 pygame 代码,它有一些函数,我希望能够将函数 apple1() 和 apple2() 放在列表中而不会被立即调用,然后能够从列表中调用它。
这是我试过的:
#for all the apple
def apple1():
pygame.draw.rect(screen,COLOR.GREEN, [ posR,posU, apblock, apblock])
def apple2():
pygame.draw.rect(screen,COLOR.RED, [ posiR,posiU, apblock, apblock])
def random_apple():
array = [apple1(),apple2()]
i = random.randrange(0,1)
x = array[i]
return x
def time_apple():
while time == True:
random_apple()
time.sleep(5)
最佳答案
从他们的名字中删除括号。
另外,我认为您要么想要使用 randrange(0,2)
要么 randint(0,1)
。
def random_apple():
array = [apple1,apple2]
i = random.randrange(0,2)
x = array[i]
return x()
编辑:
对于稍微更 Pythonic 的解决方案,不需要
random_apple
函数,您可以考虑:# import as needed
import random
import pygame
import time
#for all the apple
def apple1():
pygame.draw.rect(screen,COLOR.GREEN, [ posR,posU, apblock, apblock])
def apple2():
pygame.draw.rect(screen,COLOR.RED, [ posiR,posiU, apblock, apblock])
def time_apple():
while time == True:
random.choice([apple1, apple2])()
time.sleep(5)
关于python - 如何将我的函数插入数组而不被调用?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/55615792/