J'utilise python 2.7 et j'ai créé une classe parent et une classe enfant Cat; J'ai "cassé" la classe Cat en deux parties, et ces deux parties sont censées être liées en une seule, mais sont en train de lancer une erreur:Comment résoudre __init __() en prenant 1 argument quand 2 sont donnés parmi des classes enfants?
Toutes les idées sur la façon de résoudre cela, et quant à la logique de ce passage d'arguments ici ?:
class Dog(object):
def __init__(self, name):
self.name = name
self.age = 6
def age_update(self, age_update):
self.age+=age_update
print("new age: " + str(self.age))
def speak (self):
print("My name is "+ self.name + "and I'm "+ str(self.age))
class Cat(Dog):
def __init__(self):
super(Cat, self).__init__(name)
self.lives=CatNature()
class CatNature(Cat):
def __init__(self, lives=9):
self.lives=lives
def show_lives(self):
print("This cat has " + str(self.lives) + " lives")
cat1 = Cat("Fuzz")
print ("Cat's name is " + cat1.name + " and " + str(cat1.age))
cat1.lives.show_lives()
l'erreur:
Traceback (most recent call last):
File "/Users/.../Python_experiments/class.py", line 27, in <module>
cat1 = Cat("Fuzz")
TypeError: __init__() takes exactly 1 argument (2 given)
Un chat est un chien? –
;-) Oui, j'ai hâte de nommer les classes. Dans l'intérêt de cette expérience, je pensais que les chats et les chiens pouvaient partager les qualités d'avoir un nom et un âge ... et étaient trop distraits par l'erreur pour revenir à ce problème - j'étudierai votre solution - et répondrons avec d'autres questions - merci! – mac