python meta编程

装饰器是一个函数,接受一个函数作为输入并返回一个新的函数作为输出。
timethis.py:
import time
from functools import wraps

def timethis(func):
    @wraps(func)
    def wrapper(*args,**kwargs):
        start=time.time()
        result=func(*args,**kwargs)
        end=time.time()
        print(func.__name__,end-start)
        return result
    return wrapper

countdown.py:

from timethis import timethis


@timethis
def countdown(n: int):
    """
    Counts down
    """
    while n > 0:
        n -= 1


countdown(1000000)
print(countdown.__name__)
print(countdown.__doc__)
print(countdown.__annotations__)

from inspect import signature

print(signature(countdown))

你可能感兴趣的:(python及shell)