python 培训之 装饰器

1. 高阶函数 接收 函数作为参数,返回函数。

2. 函数闭包

3. 接收一个函数为参数,对其进行包装,然后返回一个包装函数(tip:包装函数中调用并返回参数函数。

#! /usr/env/python
# -*- coding:UTF-8 -*-
from __future__ import print_function


def f1(x):
    return x*2

def new_fn(f):
    def fn(x):
        print("call"+f.__name__+'()')
        return f(x)
    return fn


a = new_fn(f1)(2)
print(a)
print("##################")
b = f1(2)
print(b)

@new_fn
def f1(x):
    return x*2

f1 = new_fn(f1)
f1(5)

函数闭包

 

函数参数

这两个是python中的可变参数。*args表示任何多个无名参数,它是一个tuple;**kwargs表示关键字参数,它是一个 dict。并且同时使用*args和**kwargs时,必须*args参数列要在**kwargs前,像foo(a=1, b=’2′, c=3, a’, 1, None, )这样调用的话,会提示语法错误“SyntaxError: non-keyword arg after keyword arg”。

python动态参数解释:

* 表示一个任意长度的tuple(元组),可以接受一连串的参数;

** 表示一个dictionary(字典),参数形式是“key=value”。

 Decorator

 

posted @ 2016-07-30 21:30  xiaojikuaipao  阅读(176)  评论(0编辑  收藏  举报