Gist 주소부터 : https://gist.github.com/HallaZzang/e5c050ef5e1ad60dec79
밑은 그냥 소스 복붙 :
class SliceTime(object):
@property
def hour(self):
return self._hour
@hour.setter
def hour(self, value):
if not isinstance(value, (int, long)) or not 0 <= value <= 23:
raise ValueError('hour must be an integer value in 0 ~ 23')
else:
self._hour = value
@property
def min(self):
return self._min
@min.setter
def min(self, value):
if not isinstance(value, (int, long)) or not 0 <= value <= 59:
raise ValueError('min must be an integer value in 0 ~ 59')
else:
self._min = value
@property
def sec(self):
return self._sec
@sec.setter
def sec(self, value):
if not isinstance(value, (int, long)) or not 0 <= value <= 59:
raise ValueError('sec must be an integer value in 0 ~ 59')
else:
self._sec = value
def __repr__(self):
return '<SliceTime {0.hour:02}:{0.min:02}:{0.sec:02}>'.format(self)
def __getitem__(self, arg):
if isinstance(arg, slice) and arg.start != None and arg.stop != None:
self.hour = arg.start
self.min = arg.stop
self.sec = arg.step or 0
elif isinstance(arg, (int, long)):
self.hour = arg
self.min = 0
self.sec = 0
else:
raise Exception('invalid time format')
return self
Time = SliceTime()
if __name__ == '__main__':
print Time[12] # <SliceTime 12:00:00>
print Time[15:30] # <SliceTime 15:30:00>
print Time[5:45:20] # <SliceTime 05:45:20>
글이 너무 허전한 듯하여 추가 코멘트 : 젤 마지막 if __name__ == '__main__': 부분만 보면 됨 ㅎㅎ 파이썬 슬라이싱 문법을 이용해서 시간을 표현해봤습니다
굳