У меня есть:
import datetime
class Animal(object):
def __init__(self, dob, carnivore):
self.__dob = dob
self.__carnivore = carnivore
@property
def dob(self):
return self.__dob
@dob.setter
def dob(self, dob):
self.__dob = dob
@property
def carnivore(self):
return self.__carnivore
@carnivore.setter
def carnivore(self, carnivore):
self.__carnivore = carnivore
def __str__(self):
return "DOB: " + str(self.__dob) + "\nCarnivore: " + str(self.__carnivore)
Мой второй класс:
import Species.Animal as Animal
import datetime as date
class Amphibian(Animal):
def __init__(self, dob=date.datetime.now(), carnivore=False, *characteristics):
super(Animal, self).__init__(dob, carnivore)
self.__characteristics = []
for characteristic in characteristics:
self.__characteristics.append(characteristic)
@property
def characteristics(self):
return self.__characteristics
@characteristics.setter
def characteristics(self, characteristic):
self.__characteristics.append(characteristic)
def __str__(self):
characteristics = ""
for characteristic in self.__characteristics:
characteristics += str(characteristic)
return characteristics
С использованием:
amphibian = Amphibian(date.date(1979, 1, 12), True, "BackBone", "Cold Blooded")
print(amphibian)
Я получаю сообщение об ошибке:
Traceback (последний вызов последним): файл "C: /Users/Daniel/PycharmProjects/ObjectOrientedSpecies/Species/Amphibian.py", строка 7, в классе Amphibian (Animal): TypeError: module .__ init __ () принимает не более 2 аргументов (3 дано)
Я новичок в Python, поэтому не уверен, что такое хорошие методы объектно-ориентированного программирования.