是否有比单独写出所有乌龟更优雅的方法?

时间:2019-05-07 09:08:53

标签: python

我正在创建一个包含多个海龟的海龟屏幕,它们都绘制了不同的多边形形状。我想知道如何使创建海龟的代码更密集。现在,我将所有四个单独写出,但是我敢肯定,还有更多的传奇方式可以做到这一点。有人可以帮我吗?

equilat = turtle.Turtle()
equilat.color("blue")
equilat.shape("turtle")

square = turtle.Turtle()
square.color("pink")
square.shape("turtle")

hexa = turtle.Turtle()
hexa.color("purple")
hexa.shape("turtle")

octa = turtle.Turtle()
octa.color("grey")
octa.shape("turtle")'

1 个答案:

答案 0 :(得分:1)

使用理解力:

def build_turtle(color, shape):
    t = turtle.Turtle()
    t.color(color)
    t.shape(shape)
    return t


equilat, square, hexa, octa = [build_turtle(color, "turtle") for color in ("blue", "pink", ...)]

理想情况下,您将拥有一个类,而build_turtle将是init方法:

class MyTurtle(Turtle):
    def __init__(self, color, *args, **kwargs):
        super().__init__(*args, **kwargs)
        self.color(color)
        self.shape("turtle")

equilat, square, hexa, octa = [MyTurtle(color) for color in ("blue", "pink", ...)]