Am 19.09.2010 10:49, schrieb Roelof Wobben:
Hello,
I have this programm :
class Point:
def __init__(self, x=0, y=0):
self.x = x
self.y = y
class Rectangle(Point):
def _init_(self, width=0, length=0):
self.width = width
self.length = length
You're inheriting the Point Class, but you don't initialise it.
For some detailled description of inheritance in Python I rather suggest
to check out some tutorials instead of trying to explain it. Also,
others on this list can do this probably better. Here's one reference:
http://diveintopython.org/object_oriented_framework/index.html
But now some remarks regarding your problem:
First, I would not consider a Rectangle as a special Point. It's not a
relation like a Sportscar is a Car (is-a-relationship). It's more a
relation a Rectangle has 4 Points (has-a-relationship), or 1 Point and a
width and length. So, it's probably better to express your Rectangle
class like this:
class Rectangle(object):
def __init__(self, base_point, width=0, length=0):
self.base_point = base_point
self.width = width
self.length = length
then you go (with German names ;-)):
punkt = Point(3,4)
rechteck = Rectangle(punkt,20,30)
In your Rectangle class, the __init__ method takes only two arguments
(not counting the instance: self), but you're passing three arguments.
At the beginning, the error messages are a bit confusing, because they
count the instance as one of the arguments. So it tells you, that you
have given 4 arguments, but you might wonder "Hey, I gave you 3".
HTH,
Jan
punt = Point(3,4)
rechthoek = Rectangle (punt,20,30)
Now I wonder how I can change this to rechthoek = rectangle (punt,20,20)
This one gives as error message :
Traceback (most recent call last):
File "C:\Users\wobben\workspace\oefeningen\src\test.py", line 12, in<module>
rechthoek = Rectangle (punt,20,30)
TypeError: __init__() takes at most 3 arguments (4 given)
Roelof
_______________________________________________
Tutor maillist - Tutor@python.org
To unsubscribe or change subscription options:
http://mail.python.org/mailman/listinfo/tutor
_______________________________________________
Tutor maillist - Tutor@python.org
To unsubscribe or change subscription options:
http://mail.python.org/mailman/listinfo/tutor