【发布时间】:2013-05-04 02:52:59
【问题描述】:
我正在尝试创建一个Time -class,它可以处理hh:mm:ss 格式的时间。
这就是我所拥有的:
class Time(object):
def __init__(self, h=0, m=0, s=0):
#private
self.__hours = 0
self.__minutes = 0
self.__seconds = 0
#public
self.hours = h
self.minutes = m
self.seconds = s
@property
def hours(self):
return self.__hours
@hours.setter
def hours(self, value):
if value < 0:
raise ValueError
self.__hours = value
@property
def minutes(self):
return self.__minutes
@minutes.setter
def minutes(self, value):
if value < 0:
raise ValueError
self.hours += int(value / 60)
self.__minutes = value % 60
@property
def seconds(self):
return self.__seconds
@seconds.setter
def seconds(self, value):
if value < 0:
raise ValueError
self.minutes += int(value / 60)
self.__seconds = value % 60
我遇到了负时间值的问题。
我要做的是检查时间值(例如minutes)是否设置为负数,如果是,则提高ValueError。
但问题是,我也想使用负时间格式,我只是不确定如何。
负时间值应该如何表现? 他们甚至可以用我的二传手来实现吗? 我什至无法开始,我不需要你为我编写代码,但至少给出一些提示并解释负时间是如何工作的。
【问题讨论】:
-
在设置
self.hours等方面没有点,因为将使用具有相同名称的@property描述符无论如何。 -
我认为您将时间 delta 与绝对时间混淆了。这是一个班级建模的绝对时间,一天中的一个时间。时间增量模拟相对时间,这可能是负数。好好看看
datetime模块。
标签: python time python-3.x negative-number