2013-08-02 4 views
-2

이 클래스를 기반으로 파이썬 클래스를 만들려고합니다. 나는 그 사람의 임금을 일주일에 반환하도록 노력하고있다. (초과 근무에 대한 시간과 반을 포함한다.)이 메소드를 def getPhoneNo (self) : 메소드 다음에 배치해야하고 def __str__(self): 메소드 전에 사용해야한다. . 누구 F 다른 프로그램의 방법 내가 도울 수파이썬 파트 1의 클래스

class PersonWorker: 

    def _init_(self, firstName, lastName, phoneNo): 
     self.firstName= firstName 
     self.lastName= lastName 
     self.phoneNo= phoneNo 
    def getFirstName(self): 
     return self.firstName 
    def getLastName(self): 
     return self.lastName 
    def getPhoneNo(self): 
     return self.phoneNo 
    def _str_(self): 
     stringRep = "First Name: " + self.firstName + "\n" 
     stringRep = "Last Name: " + self.lastName + "\n" 
     stringRep = "Phone Number : " + self.phoneNo + "\n" 
     return stringRep`: 

def getWeeksPay(self, hours, rate) 
+7

? 당신이해야 할 일을 꽤 많이 설명해 준 것 같습니다. 무엇을 시도하고 잘못 되었습니까? –

답변

1

을 난 당신이 게시 된 예에서 두 가지 문제를 참조하십시오.

getWeeksPay 기능이되도록 들여 쓰기를 할 필요가
  • PersonWorker 클래스 메소드와 일반 함수로 해석 이온.
  • str 방법의 반환 문장 끝에 펑키 문자가 있습니다.

코드 스 니펫을 내가 달성 한 것으로 생각하는 예를 사용하여 업데이트했습니다.

class PersonWorker: 

    def __init__(self, firstName, lastName, phoneNo, rate=0): 
     self.firstName= firstName 
     self.lastName= lastName 
     self.phoneNo= phoneNo 
     self.rate= rate 
    def getFirstName(self): 
     return self.firstName 
    def getLastName(self): 
     return self.lastName 
    def getPhoneNo(self): 
     return self.phoneNo 
    def getWeeksPay(self,hours): 
     if rate is 0: raise Exception("Rate not set") 
     return hours*self.rate 
    def __str__(self): 
     stringRep = "First Name: " + self.firstName + "\n" 
     stringRep += "Last Name: " + self.lastName + "\n" 
     stringRep += "Phone Number : " + self.phoneNo + "\n" 
     return stringRep 
2

__str__ 기능이 괜찮습니까? stringRep이 여러 번 변경되고 마지막 버전이 반환됨을 의미합니다.

나는 함수의 본문은 다음과 같이해야한다고 생각 :

은 어떤 문제가
stringRep = "First Name: " + self.firstName + "\n" +\ 
      "Last Name: "  + self.lastName + "\n" +\ 
      "Phone Number : " + self.phoneNo + "\n" 
return stringRep 
+0

편집 주셔서 감사합니다. Lennart! –