3.28

*号的应用场景

def sum2(*args):

    res=0

    for num in args:

       res+=num

    return res

sum2(1,2,3)

**的应用场景

def  sum3(name,age**kwargv)可扩展

补充函数的用法 

函数的嵌套调用:在函数内又调用了其他函数

函数内又定义其他函数 函数的嵌套定义

def func1():

    print('from func1')

    def func2():

        print('form func2')

    func2()

func1()

名称空间:顾名思义是存放名字的空间,存放名字与绑定值关系的地方

名称空间分为三类

内置名称空间:python解释器内置的名字,字节是器启动时就生效在解释器结束时就失效

全局名称空间:文件级别的名字  非函数内 在执行文件的时候 在文件结束或文件执行期间被删除的

局部名称空间:函数内定义的名字 函数的参数以函数内的名字都存放在局部名称空间 函数调用的生效 函数结束的时候就失效

加载的顺序:内置名称空间☞全局名称空间☞局部名称空间

查找的顺序:局部名称空间☞全局名称空间☞内置名称空间(从当曾的位置依次往上一层寻找)

作用域:发挥作用的范围

作用域的两种区分

全局作用域:在任何位置都能使用,干范围的名字会伴随程序个周期

局部作用域:只能在函数能使用,调用时生效 结束时失效

函数对象

函数在python中的第一类对象

def func():

    print('form')

1.可以被引用

x=1

x=y

def name():

    print(1)

f=name

f()

2.可以当作参数传入

def name(a):

    print(a)

    a()

name()

3.可以当作函数的返回值

def name (x):

     return x

res=name(func)

res()

4.可以当作容器类型的元素

闭:指的是定义在函数内部的函数

def name():

     def age():

     return age

f=name()

f()

 

定义在函数内部,并且该函数包含对外部函数作用域中名字的引用,该函数就称为闭包函数

作用域关系在函数定义阶段就规定死了,与调用位置无关

def name():

    print()

     x=1

    def age():

    print('egon',x)

    return age

f=name

f()

posted @ 2018-03-28 17:11  谎~言  阅读(146)  评论(0编辑  收藏  举报