Here's the question you clicked on:

55 members online
  • 0 replying
  • 0 viewing

lojs0

  • 3 years ago

Week 7, ex 4.3 I don't get what i'm doing wrong win = GraphWin("Tetrominoes", 150, 150) point = Point(1, 1) color = 'black' def Block(Rectangle): def __init__(self, point1, color = 'black'): self.canvans = Rectangle(point, Point(point.x + 20, point.y + 20)) self.canvans.setFill(color) def draw(self, win): self.canvans.draw(win) rect = Block(point) rect.draw(win) win.mainloop() And result: File "E:/Python/test1/Ex4.3.py", line 26, in <module> rect.canvans.draw(win) AttributeError: 'NoneType' object has no attribute 'canvans'

  • This Question is Closed
  1. snark
    • 3 years ago
    Best Response
    You've already chosen the best response.
    Medals 1

    you want to define Block as a class, rather than a function: class Block: # no argument is needed here and then use either point or point1 consistantly between your self__init__ function and your rectangle definition.

  2. andrew.m.higgs
    • 3 years ago
    Best Response
    You've already chosen the best response.
    Medals 0

    Should the class not be derived from Rectangle? class Block(Rectangle): There its also a typo: canvans should be canvas. HTH.

  3. lojs0
    • 3 years ago
    Best Response
    You've already chosen the best response.
    Medals 0

    Oh. I need more sleep. I had to write "class Block" instead of "def Block".

  4. andrew.m.higgs
    • 3 years ago
    Best Response
    You've already chosen the best response.
    Medals 0

    :-)

  5. Not the answer you are looking for?
    Search for more explanations.

    • Attachments:

Ask your own question

Sign Up
Find more explanations on OpenStudy
Privacy Policy