Discuss / Python / 作业

作业

Topic source

有无参数均可调用

def log(para):

    if callable(para): #如果para为我们的函数的话,就是可调用的对象,此时利用无参数写法

        @functools.wraps(para)

        def wrapper(*args,**kw):

            print('call %s()' % para.__name__)

            return para(*args,**kw)

        return wrapper

    else: #此时para为我们需要的文本,所以是不可调用的,按有参数写法

        def decorator(fn):

            @functools.wraps(fn)

            def wrapper(*args,**kw):

                print('%s %s()' % (para,fn.__name__))

                return fn(*args,**kw)

            return wrapper

        return decorator

21zl9

#2 Created at ... [Delete] [Delete and Lock User]

为什么callable True是无参写法呢,不应该表示para有参数传入吗。新手发问,无意冒犯,感谢。


  • 1

Reply