import time
def FixUpdate(deltatime=0.2):
if 'fixUpdate' not in globals():
globals()['fixUpdate'] = {}
def warp(func):
def wrapper(*args,**kwargs):
key = func.__name__
if key not in globals()['fixUpdate']:
globals()['fixUpdate'][key] = time.time()
return func(*args,**kwargs)
begin = globals()['fixUpdate'][key]
if (time.time() - begin) > deltatime:
globals()['fixUpdate'][key] = time.time()
return func(*args,**kwargs)
else:
return None
return func(*args,**kwargs)
return wrapper
return warp
class A:
@FixUpdate(deltatime=0.2)
def greet(self):
print(time.time())
print("good")
if __name__=='__main__':
a = A()
while 1:
a.greet()
写的比较简单,可以参考一下。
使用全局变量存储上次调用的时间,超过了预设阈值时候,则执行函数。