我想创建一个使用Turtle模块绘制线条的类。
class Line(object):
def __init__(self, coordinates):
self.start_x = 0
self.start_y = 0
self.end_x = coordinates[0]
self.end_y = coordinates[1]
def drawing(self, pensize, pencolor):
self.pensize = pensize
self.color = pencolor
def main():
turtle.setup(700,400, startx = 0, starty = 0)
line = Line()
turtle.done()
main()
我应该如何获得线类的瞬间来接收需要绘制线的位置的坐标?
我已经认识到我可以使用函数,但是,为了理解类是如何工作的,我想实现类来绘制线条。灵感来自一个我自学的项目。该项目的链接是:
答案 0 :(得分:1)
与其他某些语言不同,Python不会要求创建类。它当然是可能的,但不是必需的。
当然,绘制直线的最简单方法是简单地绘制直线:
import turtle
def main():
turtle.setup(700, 700, startx=0, starty=0)
turtle.penup()
turtle.goto(13, 42)
turtle.pendown()
turtle.goto(42, 13)
turtle.done()
if __name__ == '__main__':
main()
但很明显,您想要将其解压缩,以便您可以重复操作而无需重复这四行。最简单的方法是创建一个函数。由于您引用了turtle
模块,因此您需要传入的所有内容都是开始和结束坐标:
import turtle
def draw_line(startx, starty, endx, endy):
turtle.penup()
turtle.goto(startx, starty)
turtle.pendown()
turtle.goto(endx, endy)
def main():
turtle.setup(700, 700, startx=0, starty=0)
draw_line(13, 42, 42, 13)
turtle.done()
if __name__ == '__main__':
main()
或者你也可以使用像namedtuple
这样的东西:
import turtle
from collections import namedtuple
Point = namedtuple('Point', ('x', 'y'))
def draw_line(start, end):
turtle.penup()
turtle.goto(start.x, start.y)
turtle.pendown()
turtle.goto(end.x, end.y)
def main():
turtle.setup(700, 700, startx=0, starty=0)
start = Point(13, 42)
end = Point(42, 13)
draw_line(start, end)
turtle.done()
if __name__ == '__main__':
main()
但如果你真的喜欢课程,你仍然可以使用它们。只需将相同的代码放入您可以放在其他任何地方的课程中。