Discuss / Python / 请问大家‘execute’这个怎么能表示一个函数呢?加了''不是字符串吗?

请问大家‘execute’这个怎么能表示一个函数呢?加了''不是字符串吗?

Topic source

浪子卤蛋

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

请问大家‘execute’这个怎么能表示一个函数呢?加了''不是字符串吗?

没表示函数啊。‘execute’是传给函数log的参数。

浪子卤蛋

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

那为什么要加引号呢?

因为是字符串

文章没看仔细吧。

@log时,log函数是

def log(func):

    def wrapper(*args, **kw):

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

        return func(*args, **kw)

    return wrapper

参数是函数对象

@log('execute')时,log函数是

def log(text):

    def decorator(func):

        def wrapper(*args, **kw):

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

            return func(*args, **kw)

        return wrapper

    return decorator

参数是字符串。

log函数变了。


  • 1

Reply