我正在编写一个Line类,在给定两点的坐标的情况下绘制一条直线。但是,当我运行这个程序时,海龟没有画出任何东西。我定义或调用Draw()方法的方式是否有误?我不太熟悉Python3和类。下面是我的代码:
from turtle import *
g = Turtle()
class Line():
def __init__(self, x1, y1, x2, y2):
self.X1 = x1
self.Y1 = y1
self.X2 = x2
self.Y2 = y2
self.Draw(x1, y1, x2, y2)
def getX1():
return self.X1
def getY1():
return self.Y1
def getX2():
return self.X2
def getY2():
return self.Y2
def Draw(self, x1, y1, x2, y2):
g.penup()
g.goto(x1, y1)
g.pendown()
g.goto(x2, y2)
def main():
theLine = Line(0, 0, 100, 100)
theLine.Draw()发布于 2020-01-20 16:00:20
您定义的函数Draw有5个参数(self、x1、y1、x2、y2)。但是您需要的是从Line对象获取坐标信息。
这就是self参数存在的原因。self参数是对象本身,因此您希望使用对象中存储的值,而不是使用x1、y1、x2和y2,如下所示:self.x1、self.y1、self.x2和self.y2。更改这些参数后,还应该删除函数中不必要的参数(除self之外的所有参数)
最终代码
def Draw(self): # Removed the arguments
g.penup()
g.goto(self.X1, self.Y1) # Go to the starting point stored in the object
g.pendown()
g.goto(self.X2, self.Y2) # Go to the endpoint stored in the objecthttps://stackoverflow.com/questions/59818617
复制相似问题