2013-08-02 2 views
-6

나는 나의 PersonWorker 클래스를 가져올 수 있습니다 파이썬 스크립트 (WageEarner)를 만들려고하고 있습니다. 나는 사용자가 제공 한 정보를 사용하여 PersonWorker 객체를 생성하기 때문에 사람의 이름, 성 및 전화 번호를 입력하려면 필요합니다. 일주일 동안 일한 시간과 임금을 묻는 메시지가 필요합니다. 그것은 그 객체에 대한 getWeeksPay 메서드를 호출하여 PersonWorker 객체와 주급을 인쇄합니다. 필자는 파이썬을 처음 사용하므로 익숙하지 않습니다.파이썬에서 클래스와 구현

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 
+5

첫째, 지금까지 무엇을 작성했습니다 : 여기

PersonWorker 클래스? 너는 어떤 부분에 붙어 있니? 둘째,'_init_'과'_str_'는 작동하지 않습니다; '__init__'과'__str__' (양쪽 끝에 밑줄이 두 개)가 필요합니다. 이것은 파이썬 2 또는 3입니까? 2 인 경우 첫 번째 행에'PersonWorker (object) :'를 써야합니다. 그리고 마지막으로'stringRep'을 추가하는 대신 반복적으로 바꾸고 있습니다. 두 번째 줄과 세 번째 줄에'= '대신'+ ='를 쓰고 싶을 것이다. – abarnert

+3

@abarnert 나는 그들이 http://stackoverflow.com/questions/18026306/classes-within-python-part-1 같은 과제에 나는 기시감 가지고 있다고 생각 –

+0

@JonClements을 다하고 있으리라 믿고있어 ... – jh314

답변

3
''' 
This code released under the ijustmadethisup license 
You are free to redistribute, modify, reuse, whatever, for any purpose 
that does not violate the following conditions: 

    1) You may not submit this as your own work for a homework assignment 
    2) You must include this license in any distribution of the code 

thanks for reading 

''' 

class PersonWorker(object): 
    def __init__(self, first_name, last_name, phone_number, rate=0): 
     self._first_name= first_name 
     self._last_name= last_name 
     self._phone_number= phone_number 
     self._rate= rate 

    @property 
    def first_name(self): 
     return self._first_name 

    @property 
    def last_name(self): 
     return self._last_name 

    @property 
    def phone_number(self): 
     return self._phone_number 

    def weeks_pay(self, hours): 
     if self._rate == 0: 
      raise ValueError('Rate not set') 

     return hours*self._rate 

    def __str__(self): 
     return 'First Name: {0}\nLast Name: {1}\nPhone Number: {2}'.format(
      self.first_name, self.last_name, self.phone_number) 

def main(): 
    first_name = raw_input('Enter first name: ') 
    last_name = raw_input('Enter last name: ') 
    phone_number = raw_input('Enter phone number: ') 
    rate = float(raw_input('Enter rate: ')) 
    pw = PersonWorker(first_name, last_name, phone_number, rate) 

    hours = float(raw_input('Enter hours worked: ')) 
    print pw 
    print 'Pay:', pw.weeks_pay(hours) 

if __name__ == '__main__': 
    main() 
+4

걱정하지 마십시오. 숙제로 제출하면 선생님은 Java처럼 보이지 않으므로 혼란스러워 할 것입니다. –

관련 문제