Member 14141186 Ответов: 2

Как написать make a sub class и добавить к нему переменную в Python 3.7?


Я написал подкласс, но я не понимаю, как я могу установить связь между классом и подклассом. Я пытаюсь распечатать информацию о сотруднике и менеджере, но не могу. Я был бы благодарен, если бы кто-нибудь мог мне помочь.



class Information:
    def __init__(self,first,last,pay):

        self.first = first
        self.last = last
        self.pay = pay


    def rise(self,bonus):
        self.pay = self.pay + bonus

    def __str__(self):
        return "%s and %s and has a balance of %s" % (self.first,self.last,self.pay)

if __name__ == "__main__":
    emp1 = Information("tom","jerry",999)
    emp1.rise(89)
    print (emp1)


from information import Information
class Manager(Information):
    def __init__(self):
        Information.__init__(self)
        self.shift = shift
        self.time = time
    def __str__(self):
        return Information.__str__(self)+str(self.time) + self.shift

    if __name__ == "__main__":
        information = Information()
        print (information)
        information.time(9)
        information.title(morning)
        print (Information)



Спасибо.

Что я уже пробовал:

Я попытался написать класс и подкласс в двух разных файлах и хотел соединить их с помощью импорта, но это не сработало.

2 Ответов

Рейтинг:
1

Richard MacCutchan

В своем подклассе вы вызываете информационный класс с неверными параметрами и несуществующими именами функций. Взгляните на это 9. классы — документация Python 3.7.2[^].


Рейтинг:
1

Member 14141186

class Information:
    def __init__(self,first,last,pay):

        self.first = first
        self.last = last
        self.pay = pay


    def rise(self,bonus):
        self.pay = self.pay + bonus

    def __str__(self):
        return "%s and %s and has a balance of %s" % (self.first,self.last,self.pay)



from information import Information
class Manager(Information):
    def __init__(self,shift,time):
        Information.__init__(self)
        self.shift = shift
        self.time = time
    def __str__(self):
        return Information.__str__(self)+str(self.time) + self.shift

if __name__ == "__main__":
    emp = Information("tom","jerry",999)
    emp.rise(89)
    managerr = Manager("morning",9)
    print (managerr)
    
    
    print (emp1)


Richard MacCutchan

В этом нет никакого смысла. Вы создаете класс Manager и определяете его как подкласс информации, но пытаетесь инициализировать информационную часть без предоставления каких-либо параметров. Вы должны указать три обязательных параметра (first, last и pay) в вашем призыве к Information.__init__(self).