例如,我有很多海龟,我希望它们都向前移动。我应该为每只乌龟重复我的前进命令还是有一种Pythonic方式?
import turtle
tx=turtle.Turtle()
ty=turtle.Turtle()
tz=turtle.Turtle()
ti=turtle.Turtle()
tj=turtle.Turtle()
tx.fd()
ty.fd()
tz.fd()
ti.fd()
tj.fd()
是否有map
等函数使用fd()
方法然后编写我的对象名称?我知道最好使用列表和map
函数,但我想命名我的对象。
答案 0 :(得分:4)
turtles = [tx, ty, tz, ti, tj]
for turtle in turtles:
turtle.fd()
我仍然建议不要给他们自己的变量,但这是你的电话。此外,map
对于您想要执行副作用的函数不是一个好主意;如果你不以某种方式迭代整个地图对象,那么函数就不会被调用你希望它被调用的所有东西。
答案 1 :(得分:0)
您可以使用字典命名并在值上使用循环:
import turtule
t_names = ['tx', 'ty', 'tz', 'ti', 'tj']
t = dict([(name, turtle.Turtle()) for name in t_names])
[one_t.fd() for one_t in t.values()]
并按名称使用它们:
t['tz'].bw()