Timer类-如果启动计时器在Python中被调用两次,则给出一个错误
如果启动计时器类函数被调用两次,如何调用错误?谢谢Timer类-如果启动计时器在Python中被调用两次,则给出一个错误,python,python-3.x,class,Python,Python 3.x,Class,如果启动计时器类函数被调用两次,如何调用错误?谢谢 import time class Timer(object): def __init__(self): self._startTime = None self._endTime = None def start(self): self._startTime = time.time() if self._startTime is None else print('Started'
import time
class Timer(object):
def __init__(self):
self._startTime = None
self._endTime = None
def start(self):
self._startTime = time.time() if self._startTime is None else print('Started')
def end(self):
self._endTime = time.time()
print('seconds',self._endTime - self._startTime)
t = Timer()
t.start()
t.start() # should give an error
您可以创建一个实例变量(如果希望每个类实例调用一次)或类变量(在整个生命周期中只有一次调用,因为类变量由类的所有实例共享),以保持调用次数的计数,并且当计数超过某个阈值(在您的情况下为1)时,可以引发异常。大概是这样的:
import time
class Timer(object):
def __init__(self):
self._startTime = None
self._endTime = None
self.count = 0 # Instance variable, which allows 1 invocation per instance of this class
def start(self):
self.count+=1
if self.count == 2: # Threshold is 2 here
raise Exception # You custom exception here
self._startTime = time.time() if self._startTime is None else print('Started')
def end(self):
self._endTime = time.time()
print('seconds',self._endTime - self._startTime)
有关Python中类变量与实例变量的更多详细信息,请参阅。
引发异常。