函数
def func(参数):
         ““”func的描述“”“
         print(func)                           #函数体
         return                                   #函数内执行到return代表结束,可有返回值,也可以没有返回值,是函数执行的结果
         print(‘func’)                        #永远看不到这一行

”“”以上只是函数的定义“”“

func()                                    # 代表调用函数,返回函数的执行结果
func                                       #代表函数对象,是引用函数

在函数内return的返回值可以进行赋值操作


定义函数是在内存中开辟一块空间来存放代码,函数名指向这块内存空间,但是没有执行,加上()后执行该代码,
return的内容为函数的执行的结果,没有return,结果为None,函数执行结果和print没有关系,print 只代表打印。
def func(first,second):
return first+second

a1 = func(4,5)
print a1
a2 = func
print func
print a2
print a2(3,4) 
执行结果:
9
<function func at 0x7f38bca44c80>
<function func at 0x7f38bca44c80>
7





可变量参数
参数可以有多个,也可以没有

def func(arg1,*args,**kw):     #参数名称前加*,代表元组;加**代表字典
    print('arg1:%s' % arg1)
    print args
    print kw
func('A','B','C',D=1,E=2)

结果:
arg1:A
('B', 'C')
{'E': 2, 'D': 1}


def func(name,age=10):           #参数的默认值  
    pass 
匿名函数
Lambda是一个匿名函数,没有函数名,可以使代码更精简,但是具有局限性。


lambda语句中,冒号前是参数,可以有多个,用逗号隔开,冒号右边是返回值。

Reduce


Reduce为逐次操作列表的每一项,接受的参数为两个,最后返回一个结果。

闭包closures
函数套函数
import time
def hl(func):
    def wrap():
        begin = int(time.time())
        print begin
        func()
        end = int(time.time())
        print end
        print "cost:",end - begin
        return end - begin
    return wrap
def t():
    time.sleep(1)
hl(t)()
装饰器
函数执行前扩展一些函数、执行后扩展一些函数
import time
def hl(func):
    def wrap():
        begin = int(time.time())
        print begin
        func()
        end = int(time.time())
        print end
        print "cost:",end - begin
        return end - begin
    return wrap
@hl
def t():
    time.sleep(1)
t()

##############################
def mb(func):
def wrap():
return '<b>' + func() + '</b>'
return wrap
def mi(func):
def wrap():
return '<i>' + func() + '</i>'
return wrap
@mb
@mi
def hello():
return('hello')
print(hello())

results matching ""

    No results matching ""