Discuss / Python / 小结的两问

小结的两问

Topic source

飞页快刀

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

def log(name):

    def dec1(func):

        def wrapper(*args,**kw):

            print('begin call')

            print('%s %s():' % (name,func.__name__))

            func(*args,**kw)

            print('end call')

        return wrapper

    def dec2(*args,**kw):

        print('being call')

        print('call %s():' % name.__name__)

        name(*args,**kw)

        print('end call')

    dec = dec1 if isinstance(name, str) else dec2 # 通过判断name是否是字符串选择哪个装饰器

    return dec

#log

@log('execute')

def now():

    print('hello world')

now()


  • 1

Reply