class Person: def __init__(self, name, age, pay=0, job=None): self.name = name self.age = age self.pay = pay self.job = job def lastName(self): return self.name.split()[-1] def giveRaise(self, percent): self.pay *= (1.0 + percent) def __str__(self): return ("<%s => %s: %s, %s>" % ( self.__class__.__name__, self.name, self.job, self.pay)) class Manager(Person): def __init__(self, name, age, pay): Person.__init__(self, name, age, pay, "manager") def giveRaise(self, percent, bonus=0.1): Person.__init__(self, percent + bonus) if __name__ == "__main__": bob = Person('Bob Smith', 44) sue = Person("Sue Jones", 47, 40000, "hardware") tom = Manager(name="Tom Doe", age=50, pay=50000) print(sue, sue.pay, sue.lastName()) for obj in (bob, sue, tom): obj.giveRaise(0.10) print(obj)
как исправить ошибку:
<Person => Sue Jones: hardware, 40000> 40000 Jones <Person => Bob Smith: None, 0.0> <Person => Sue Jones: hardware, 44000.0> Traceback (most recent call last): File "class_bd.py", line 26, in <module> obj.giveRaise(0.10) File "class_bd.py", line 19, in giveRaise Person.__init__(self, percent + bonus) TypeError: __init__() missing 1 required positional argument: 'age'