import functools,time
def metric(fn):
@functools.wraps(fn)
def wrapper(*args, **kwargs):
print(f"begin call {fn.__name__}()")
result = fn(*args, **kwargs) # 调用原函数
print(f"end call {fn.__name__}()")
return result
return wrapper
# 测试
@metric
def fast(x, y):
time.sleep(0.0012)
return x + y;
@metric
def slow(x, y, z):
time.sleep(0.1234)
return x * y * z;
f = fast(11, 22)
s = slow(11, 22, 33)
if f != 33:
print('测试失败!')
elif s != 7986:
print('测试失败!')
# your code goes here
# your code goes here
aW1wb3J0IGZ1bmN0b29scyx0aW1lCmRlZiBtZXRyaWMoZm4pOgogICAgQGZ1bmN0b29scy53cmFwcyhmbikKICAgIGRlZiB3cmFwcGVyKCphcmdzLCAqKmt3YXJncyk6IAogICAgICAgIHByaW50KGYiYmVnaW4gY2FsbCB7Zm4uX19uYW1lX199KCkiKQogICAgICAgIHJlc3VsdCA9IGZuKCphcmdzLCAqKmt3YXJncykgICMg6LCD55So5Y6f5Ye95pWwCiAgICAgICAgcHJpbnQoZiJlbmQgY2FsbCB7Zm4uX19uYW1lX199KCkiKQogICAgICAgIHJldHVybiByZXN1bHQKICAgIHJldHVybiB3cmFwcGVyCiAgICAKIyDmtYvor5UKQG1ldHJpYwpkZWYgZmFzdCh4LCB5KToKICAgIHRpbWUuc2xlZXAoMC4wMDEyKQogICAgcmV0dXJuIHggKyB5OwoKQG1ldHJpYwpkZWYgc2xvdyh4LCB5LCB6KToKICAgIHRpbWUuc2xlZXAoMC4xMjM0KQogICAgcmV0dXJuIHggKiB5ICogejsKCmYgPSBmYXN0KDExLCAyMikKcyA9IHNsb3coMTEsIDIyLCAzMykKaWYgZiAhPSAzMzoKICAgIHByaW50KCfmtYvor5XlpLHotKUhJykKZWxpZiBzICE9IDc5ODY6CiAgICBwcmludCgn5rWL6K+V5aSx6LSlIScpCiMgeW91ciBjb2RlIGdvZXMgaGVyZQojIHlvdXIgY29kZSBnb2VzIGhlcmU=