2017-11-01 8 views
0

질문 : 아티스트 클래스의 연령 메소드를 작성하십시오. 그러면 아티스트의 나이가 '오늘'로 반환됩니다. 예 : Artist ("Hayley Williams", (1988, 12, 27)) age()는 24를 반환합니다.이뿐만 아니라 다른 예제에서도 잘 작동합니다.Python : 객체 지향 프로그래밍 (아티스트의 나이지기)

내 시도 :

def get_date_today(): 
    return (2013, 10, 30) 

class Artist(object): 
    def __init__(self, name, dob): 
     self.name = name 
     self.dob = dob 

    def get_name(self): 
     return self.name 

    def get_dob(self): 
     return self.dob 

    def age(self): 
     return ((get_date_today())) - get_dob(self))/365 

그러나 난 그냥 튜플을 뺄 수 없습니다 알고 있습니다. 누구든지이 솔루션을 개선하는 방법을 알고 있습니까?

+0

날짜를 직접 빼기가 아니라'datetime' 객체로 변환해야합니다. 그런 다음 그것을 빼고 차이를 만들거나 단순히 튜플에서 몇 년을 빼낼 수 있습니다. – Bijoy

+0

네,'datetime'을 사용하지 않으면 시간이 많이 걸립니다. – 0TTT0

답변

0

튜플을 사용하려는 경우에는 datetime 개체로 압축을 풀면됩니다. 또한 로컬 메소드를 호출 할 때 self.method이 아닌 method(self)을 수행해야합니다.

from datetime import datetime 

def get_date_today(): 
    return (2013, 10, 30) 

dt = datetime(*get_date_today()) 

class Artist(object): 
    def __init__(self, name, dob): 
     self.name = name 
     self.dob = dob 

    def get_name(self): 
     return self.name 

    def get_dob(self): 
     return self.dob 

    def age(self): 
     return (datetime(*get_date_today()) - datetime(*self.get_dob())).days/365 

justin = Artist('JB', (1996, 8 ,28)) 
print(justin.age()) 
0

DateTime에 대한 설명서를 검토하면 비슷한 예가 표시됩니다.