简体   繁体   中英

Why do I keep getting AttributeError: 'module' object has no attribute

I am new to Python and was trying a few problems. This one is to create a traffic light. Not sure why I keep getting this error AttributeError: 'module' object has no attribute 'canvas'

Code below

Chapter 9 9.25

import tkinter as tk

class TrafficLight(tk.Frame):

    def __init__(self, parent=None):
        tk.Frame.__init__(self, parent, bg='green')
        self.grid()

# create a canvas to draw on

self.canvas = tk.canvas(self, width=260, height=280, bg='white')

self.canvas.grid()


self.make_widgets()


def make_widgets(self):
    self.canvas.create_rectangle(80, 20, 170, 260)

#imagine a square box
# upper left corner coordinates x1, y1
# lower right corner coordinates x2, y2
# and sides of length span for each circle

span = 50
x1 = 100
y1 = 50
x2 = x1 + span
y2 = y1 + span

self.canvas.create_oval(x1, y1, x2, y2, fill='red')
self.canvas.create_oval(x1, y1+70, x1, y2+70, fill='yellow')
self.canvas.create_oval(x1, y1+140, x2, y2+140, fill='green')

if __name__ == '__main__':
    light = TrafficLight()
    light.mainloop()

Python is case-sensitive.

>>> import tkinter as tk
>>> tk.canvas
Traceback (most recent call last):
  File "<stdin>", line 1, in <module>
AttributeError: 'module' object has no attribute 'canvas'
>>> tk.Canvas
<class 'tkinter.Canvas'>

The technical post webpages of this site follow the CC BY-SA 4.0 protocol. If you need to reprint, please indicate the site URL or the original address.Any question please contact:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM