如何将父类方法的内容添加到子类方法中

Acu*_*bal 5 python oop

好吧我是OOP的新手,我的问题是我有这个父类,并且它有一个方法信息.我想在同一个方法中的子类内重用该方法中的两个print语句并添加更多信息.但我无法让它发挥作用

class company:

    def __init__(self, fName, lName, salary):

        self.fName = fName
        self.lName = lName
        self.salary = salary

    def info(self):
        print("Name:", self.fName, self.lName)
        print("Salary:", self.salary)

class programmers(company):
    def __init__(self, fName, lName, salary, progLang):

        super().__init__(fName, lName, salary)
        self.progLang = progLang

    def info(self):
        print("Programming language:", self.progLang)

programmer1 = programmers("John", "Doe", 1000, "Python")
programmer1.info()
Run Code Online (Sandbox Code Playgroud)

我想过只是重写我想要重用的代码行,但是我会考虑OOP.

我正在寻找这种输出......

Name: John Doe
Salary: 1000
Programming language: Python
Run Code Online (Sandbox Code Playgroud)

我正在使用Python 3

提前致谢!

Aks*_*hay 1

尝试下面的代码。你的父类应该继承自"object". super 仅适用于新样式类

class company(object):

    def __init__(self, fName, lName, salary):

        self.fName = fName
        self.lName = lName
        self.salary = salary

    def info(self):
        print("Name:", self.fName, self.lName)
        print("Salary:", self.salary)

class programmers(company):
    def __init__(self, fName, lName, salary, progLang):

        super(programmers, self).__init__(fName, lName, salary)
        self.progLang = progLang

    def info(self):
        super(programmers, self).info()
        print("Programming language:", self.progLang)

programmer1 = programmers("John", "Doe", 1000, "Python")
programmer1.info()
Run Code Online (Sandbox Code Playgroud)

  • 在 Python 3 中,您不需要将这些参数传递给“super”,也不需要从“object”继承,这是默认情况下发生的(仅限“新样式”类) (4认同)