2017-11-23 29 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')과 같이 넣으면 첫 번째 클래스가 올바르게 출력됩니다. 하지만 하위 클래스 내에서 호출하려고하면 제대로 작동하지 않습니다. 모든 내용이 비어 있습니다. 내가 뭔가를 분명 실종, 아무것도 얻을 위에 나는 블록으로 kat = Employee('CC','9th Street','1990','12345','2017') 같이 입력 뭔가 있다면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) 

, 나는 그것을 예제와 일치하는 몇 가지 방법을 다시했지만 내 방법도 예제도가 작동 나를.

+0

인쇄 방법은 무엇입니까? 'repr (kat)'? –

+0

print (kat)는 제가 사용하고있는 것이지만 repr (kat)을 시도해 보았습니다. – Xydis

+0

어쨌든'__repr__'을 사용하지 마십시오. 형식이 지정된 데이터를 표시하는 데 사용되지 않아야합니다. – wim

답변

-1

당신의 직원 클래스에서이 작업을 수행

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

그래서 모듈에 대해 작동합니다 나는 그것을 실행하는 것으로 결정했다. 내가 비주얼 스튜디오에서 쓴 그것은 그것으로 작동하지 않았지만, Idle에 밀어 넣을 때 제대로 작동합니다.

+0

Visual Studio가 파이썬 2 용으로 설정되어있는 것처럼 들린다. – wim