首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >为什么turtle不在Line类的Python3中绘图?

为什么turtle不在Line类的Python3中绘图?
EN

Stack Overflow用户
提问于 2020-01-20 15:26:08
回答 1查看 143关注 0票数 0

我正在编写一个Line类,在给定两点的坐标的情况下绘制一条直线。但是,当我运行这个程序时,海龟没有画出任何东西。我定义或调用Draw()方法的方式是否有误?我不太熟悉Python3和类。下面是我的代码:

代码语言:javascript
复制
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()
EN

回答 1

Stack Overflow用户

发布于 2020-01-20 16:00:20

您定义的函数Draw有5个参数(selfx1y1x2y2)。但是您需要的是从Line对象获取坐标信息。

这就是self参数存在的原因。self参数是对象本身,因此您希望使用对象中存储的值,而不是使用x1y1x2y2,如下所示:self.x1self.y1self.x2self.y2。更改这些参数后,还应该删除函数中不必要的参数(除self之外的所有参数)

最终代码

代码语言:javascript
复制
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 object
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/59818617

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档