如何解决从清单中呼叫课程
class Crosspipe(BasePipe):
def __init__(self,position):
BasePipe.__init__(self,position)
self.current_pos_X = 0
self.current_pos_y = 0
self.flow_rect = Rect(0,settings.FLOW_WIDTH,0)
self.flow_rect.left = (settings.TUBE_SIZE / 2) - (settings.FLOW_WIDTH / 2)
def update(self):
BasePipe.update(self)
if self.current_pos_y < settings.TUBE_SIZE:
self.current_pos_y += 1
self.flow_rect.bottom = self.current_pos_y
pygame.draw.rect(self.image,settings.FLOW_COLOR,self.flow_rect,1)
pipes = (StraightPipe,BentPipe,Crosspipe)
coming_pipes = []
done = 0
while done != 4:
coming_pipes.append(random.choice(pipes).__name__)
done += 1
这将使列表看起来像这样:
['BentPipe','Crosspipe','BentPipe','StraightPipe']
列表中的4个块需要显示在屏幕上,但是要在屏幕上绘制它们,我必须能够使用placed.add(coming_pipes[0]((-2,0)))
从列表中调用它们,但由于它是字符串列表,给出placed.add("BentPipe"((-2,0)))
,无法调用。
那么,我怎么能从列表中调用一个类,或者在没有字符串的情况下将这些类添加到列表中呢?
我并没有太多的编码知识。
解决方法
不要将类别的名称放在列表中;自己上课。
pipes = (StraightPipe,BentPipe,CrossPipe)
coming_pipes = []
done = 0
while done != 4:
coming_pipes.append(random.choice(pipes))
done += 1
或更简单地
coming_pipes = random.choices(pipes,k=4)
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。