Python super()。\uuuu repr\uuuuu()未返回预期结果

Python super()。\uuuu repr\uuuuu()未返回预期结果,python,class,init,super,repr,Python,Class,Init,Super,Repr,如果我输入kat=Person'CC'、'9th Street'、'1990'之类的内容,第一个类将正确输出。但是当我试图在子类中调用它时,我无法使它正常工作,它只会将所有内容留空 class Person: def __init__(self, nameInput, addressInput, dateOfBirthInput): self._name = nameInput self._address = addressInput se

如果我输入kat=Person'CC'、'9th Street'、'1990'之类的内容,第一个类将正确输出。但是当我试图在子类中调用它时,我无法使它正常工作,它只会将所有内容留空

class Person:
    def __init__(self, nameInput, addressInput, dateOfBirthInput):
        self._name = nameInput
        self._address = addressInput
        self._dateOfBirth = dateOfBirthInput
    def getName(self):
        return self._name
    def getAddress(self):
        return self._address
    def getDateOfBirth(self):
        return self._dateOfBirth
    def __repr__(self):
        return 'Name: %s \nAddress: %s \nDate of Birth: %s' % (self._name, self._address, self._dateOfBirth)

如果我在上面的块中输入像kat=Employee'CC'、'9th Street'、'1990'、'12345'、'2017'之类的东西,我什么也得不到,我是否遗漏了一些明显的东西,我用了几种不同的方法来匹配示例,但我的方法和示例都不适合我。

在你的Employee类中这样做

from Person import Person

class Employee(Person):
    def __init__(self, nameInput, addressInput, dateOfBirthInput, employeeNumberInput, dateOfHireInput):
        super().__init__(nameInput, addressInput, dateOfBirthInput)
        self._employeeNumber = employeeNumberInput
        self._dateOfHire = dateOfHireInput
    def getEmployeeNumber(self):
        return self._employeeNumber
    def getDateOfHire(self):
        return self._dateOfHire
    def __repr__(self):
        return super().__repr__() + '\nEmployee Number: %s \nDate Of Hire: %s' % (self._employeeNumber, self._dateOfHire)

这将适用于您的模块

,因此经过一些修改后,似乎没有任何问题,它是否运行似乎取决于我运行它的方式。我在Visual Studio中编写了它,但它在Visual Studio中不起作用,但当我将它推入空闲状态时,它可以正常工作。

如何打印它?reprkat?printkat是我正在使用的,但我尝试了reprkat,得到了相同的结果。无论如何,不要使用u repr_u。它不应该用于显示格式化数据。这不会改变任何内容。@cᴏʟᴅsᴘᴇᴇᴅ 我已经添加了superEmployee、self,它对meIt起作用,听起来好像您的VisualStudio可能已经为Python 2进行了配置。
class Employee(Person):
...:     def __init__(self, nameInput, addressInput, dateOfBirthInput, employeeNumberInput, dateOfHireInput):
...:         super(Employee, self).__init__(nameInput, addressInput, dateOfBirthInput)
...:         self._employeeNumber = employeeNumberInput
...:         self._dateOfHire = dateOfHireInput
...:     def getEmployeeNumber(self):
...:         return self._employeeNumber
...:     def getDateOfHire(self):
...:         return self._dateOfHire
...:     def __repr__(self):
...:         return super(Employee, self).__repr__() + '\nEmployee Number: %s \nDate Of Hire: %s' % (self._employeeNumber, self._dateOfHire)