2017-11-23 7 views
1
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 = Person('CC','9th Street','1990')のようなものを入れた場合、ファーストクラスは正しく出力されます。しかし、サブクラス内から呼び出そうとすると正しく動作するようにはできません。super().__ repr __()が期待した結果を返さない

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) 

私は何を取得の上、私は、入力にブロックにkat = Employee('CC','9th Street','1990','12345','2017')のようなものだった私は何かを明らかに行方不明ですが、私はそれを例に合わせて、いくつかの異なる方法を書き換えてきましたが、私のやり方でも例のいずれものために働きます私。

+0

どのように印刷していますか? 'repr(kat)'? –

+0

print(kat)は私が使っているものですが、私はrepr(kat)を試してみました。 – Xydis

+0

とにかく '__repr__'を使わないでください。これは、書式設定されたデータを表示するために使用されることは想定されていません。 – wim

答えて

-1

あなたのEmployeeクラスでこれを行います

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) 

これは、それが間違っていないものは、すべてである、それは動作しますかと思われかであるように思わいじっていくつかの後

+1

それは何も変わりません。 –

+0

@cᴏʟᴅsᴘᴇᴇᴅ私は '' 'super(Employee、self)' ''を追加してくれました。 –

0

だからあなたのモジュールのために動作します私はそれを実行することによって決定した。私はVisual Studioでそれを書いていて、それはうまくいきませんでしたが、Idleで押すとうまくいきます。

+0

Visual StudioがPython 2用に設定されているかのように聞こえます。 – wim

関連する問題