使用带有乌龟图形的Python在OOP中创建乌龟

时间:2020-01-25 15:46:40

标签: python class oop turtle-graphics

我想吃这个

t=turtle.Turtle()
t.color("white")
t.pensize(2)
t.shape("turtle")
t.speed(0)

使用OOP制作很多 ,所以我尝试了,但没有成功

class turtles:
    def __init__(self, color, pensize, shape, speed):
        self.self = turtle.Turtle()
        self.color = self.("color")
        self.pensize = self.(pensize)
        self.shape = self.("shape")
        self.speed = self.(speed)



t = turtles('blue', '2', 'turtle', '0')



3 个答案:

答案 0 :(得分:0)

在没有OOP的情况下,您正在使用Turtle的对象,并且将其放在类中时,也必须这样做。试试:

class turtles:
    def __init__(self, color, pensize, shape, speed):
        self.turtle = turtle.Turtle()
        self.turtle.color(color)
        self.turtle.pensize(pensize)
        self.turtle.shape(shape)
        self.turtle.speed(speed)

t = turtles("blue", 2, "turtle", 0)

答案 1 :(得分:0)

尝试一下:

import turtle
class turtles(turtle.Turtle):
    def __init__(self, color, pensize, shape, speed):
        super().__init__(shape)
        self.color(color)
        self.pensize(pensize)
        self.shape(shape)
        self.speed(speed)

t = turtles("blue", 2, "turtle", 0)
t.forward(10)

在代码的第一行中,我在类名后的括号中放置了“ Turtle”,以告诉python该类继承自“ Turtle”。这意味着它以“ Turtle”类为基础,该技术通常用于扩展或变异现有的类。

通过从“ Turtle”继承,函数中的“ self”变量是从“ Turtle”继承的对象。这意味着您可以直接通过self设置乌龟图形参数,而无需额外的变量。

您可以在此处阅读有关继承的更多信息: https://www.w3schools.com/python/python_inheritance.asp

答案 2 :(得分:0)

我相信这应该按照您的描述进行:

from turtle import Screen, Turtle

class MyTurtle(Turtle):
    def __init__(self, color, pensize, shape, speed):
        super().__init__(shape)
        self.color(color)
        self.pensize(pensize)
        self.speed(speed)

yertle = MyTurtle('blue', 2, 'turtle', 'fast')
yertle.circle(100)

screen = Screen()
screen.exitonclick()

super().__init__()调用非常关键(特定于Python3,在Python2中还有另一种方法),因为它设置了龟需要的各种属性。

相关问题