我尝试在每次执行方法后添加暂停,有办法自动执行吗? 其实我有这样的事情:
import time
def test (arg):
print arg
time.sleep(0.1)
class Foo (Object):
def __init__ (self, a, b):
self.a = a
self.b = b
time.sleep(0.1)
def printer (self, arg):
print arg
time.sleep(0.1)
最佳答案
这与 @Fedor Gogolev 的解决方案基本相同, 不同之处在于它使用类装饰器而不是元类。
import time
import inspect
import functools
def sleep(f):
@functools.wraps(f)
def wrapper(*args, **kwargs):
result = f(*args, **kwargs)
time.sleep(0.1)
return result
return wrapper
def sleeper(cls):
for name, method in inspect.getmembers(cls, inspect.ismethod):
setattr(cls, name, sleep(method))
return cls
@sleeper
class Foo(object):
def __init__(self, a, b):
self.a = a
self.b = b
def printer(self, arg):
print arg
f = Foo(1,2)
f.printer('hi')
关于python - 每次执行方法后暂停,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11826389/