Почему функция super().__init__() не работает так как должна

Рейтинг: 1Ответов: 0Опубликовано: 15.08.2023

Вот мой первый код который работает правильно:

class sotrudnik:
    def __init__(self, name, work=None, salary=0):
        self.name=name
        self.work=work
        self.salary=salary

    def Raise(self, x):
        if type(x)==int or type(x)==float:
            self.salary += self.salary * x
            return self.salary
        else:
            raise TypeError

class manager(sotrudnik):
    def Raise(self, x, y):
        if type(x)==int or type(x)==float:
            self.salary += self.salary * x
            if self.work!=None:
                self.salary += self.salary * y
                return self.salary
            else: return self.salary
        else:
            raise TypeError
        
s=manager(1,1,100)
print(s.Raise(0.1, 0.1))

Интерпретатор выводит: 121.0

А вот мой второй код, при обработке которого компилятор выводит None:

class sotrudnik:
    def __init__(self, name, work=None, salary=0):
        self.name=name
        self.work=work
        self.salary=salary

    def Raise(self, x):
        if type(x)==int or type(x)==float:
            self.salary += self.salary * x
            return self.salary
        else:
            raise TypeError

class manager(sotrudnik):
    def Raise(self, x, y):
        super().__init__(x)
        if self.work!=None:
            self.salary += selfsalary * y
            return self.salary

ivan=manager('bdfy','quya',10000)
print(ivan.Raise(0.1, 0.1))

Объясните пожалуйста, почему так

Ответы

Ответов пока нет.