我必须使用Python类绘制星形;这是一个家庭作业问题。
from tkinter import*
class star:
def _init_(self, w, h):
root=Tk()
root.title("Mercy Cybersecurity HWb")
self.canvas=Canvas(root, bg="#1199ff", width=w, height=h)
self.canvas.pack()
self.draw(w,h)
def draw(self,w,h):
for i in range(0,2):
self.canvas.create_rectangle(20+i*10, 30+i*10, w-20-i*20, h-30-i*20)
#root.mainloop()
star(700,400)
我有几个问题
我必须把这条线放在星形上?
答案 0 :(得分:3)
我改变了你的代码,所以你得到了一些输出(我只做了一个三角形,自己把它改成了一个星)。
from Tkinter import*
class star:
def __init__(self, w, h):
self.root=Tk()
self.root.title("Mercy Cybersecurity HWb")
self.canvas=Canvas(self.root, bg="#1199ff", width=w, height=h)
self.canvas.pack()
self.draw(w,h)
def draw(self,w,h):
for i in range(0,2):
self.canvas.create_rectangle(20+i*10, 30+i*10, w-20-i*20, h-30-i*20)
self.canvas.create_polygon(100, 100, 300, 300, 400, 200)
self.root.mainloop()
star(700,400)
您的错误是:
__init__
拼写错误。self.
前面忘了root
,以便在整个班级中看到它。self.canvas.create_polygon(100, 100, 300, 300, 400, 200)
。答案 1 :(得分:2)
构造函数是__init __(双下划线);你使用了_init_(单下划线)。因此,您继承了默认构造函数,该构造函数不带参数。当我做出这个改变时,初始化就好了。