python闭包及装饰器练习

def tips(func):
    def nei(a,b):
        print('start')
        func(a,b)
        print('stop')

    return nei

@tips
def add(a,b):
    print(a+b)

@tips
def sun(a,b):
    print(a-b)

print(add(4,5))
print(sun(5,1))


def new_tips(argv):
    def tips(func):
        def nei(a,b):
            print('start %s %s' %(argv,func.__name__))
            func(a,b)
            print('stop')

        return nei
    return tips

@new_tips('add_module')
def add(a,b):
    print(a+b)

@new_tips('sub_module')
def sub(a,b):
    print(a-b)

print(add(4,5))
print(sub(5,4))
此条目发表在Python分类目录。将固定链接加入收藏夹。

发表评论

邮箱地址不会被公开。 必填项已用*标注

To create code blocks or other preformatted text, indent by four spaces:

    This will be displayed in a monospaced font. The first four 
    spaces will be stripped off, but all other whitespace
    will be preserved.
    
    Markdown is turned off in code blocks:
     [This is not a link](http://example.com)

To create not a block, but an inline code span, use backticks:

Here is some inline `code`.

For more help see http://daringfireball.net/projects/markdown/syntax

Protected with IP Blacklist CloudIP Blacklist Cloud