Il est mon script:# Erreur: TypeError: méthode non liée __init __() doit être appelée par exemple de forme comme premier argument (obtenu par exemple str à la place) n
class shape:
def __init__(self, name):
self.name = name
def printMyself(self):
print 'I am a shape named %s.' % self.name
shape1 = shape(name = 'myFirstShape.')
shape2 = shape(name = 'mySecondShape.')
shape1.printMyself()
shape2.printMyself()
class polyCube(shape):
def __init__(self, name, length, width, height):
shape.__init__(name)
self.length = length
self.width = width
self.height = height
def printMyself(self):
shape.printMyself(self)
print 'I am also a cube with dimensions %.2f, %.2f, %.2f.' % (length, width, height)
class polySphere(shape):
def __init__(self, name, radius):
shape.__init__(name)
self.radius = radius
def printMyself(self):
shape.printMyself(self)
print 'I am also a sphere with dimensions of %.2f.' % (radius)
cube1 = polyCube('firstCube', 2.0, 1.0, 3.0)
cube2 = polyCube('secondCube', 3.0, 3.0, 3.0)
sphere1 = polySphere('firstSphere', 2.2)
sphere2 = polySphere('secondSphere', 3.5)
shape1 = shape('myShape')
cube1.printMyself()
cube2.printMyself()
sphere1.printMyself()
sphere2.printMyself()
Mon erreur:
# Error: TypeError: unbound method __init__() must be called with shape instance as first argument (got str instance instead) #
Je ne comprends pas. Pourquoi j'ai reçu ce message d'erreur? Quelle est la solution? Et pourquoi?
Merci!
L'indentation entraînerait une IndentationError, pas une erreur TypeError dans ce cas. L'erreur d'indentation est presque certainement le résultat de copier/coller dans SO. – mgilson
il y a aussi d'autres erreurs, comme 'self' n'est pas passé à' __init__' et il utilise simplement 'radius' au lieu de' self.radius' dans l'instruction print. –
Merci beaucoup – Oldran