zoukankan      html  css  js  c++  java
  • python 3.28 第三章 函数嵌套/名称空间//内置名称空间/全局名称空间/局部名称空间/作用域/函数对象/闭包函数。

    1 函数嵌套:

      函数内可以调用了其他的函数.

    # def max2(x,y):
    # if x > y:
    # return x
    # else:
    # return y
    #
    # def max3(x,y,z):
    # res1=max2(x,y)
    # res2=max2(res1,z)
    # return res2
    #
    # print(max3(11,199,2))

    def f1():
    print('f1')
    def f2():
    print('f2')
    def f3():
    print('f3')
    f3()
    f2()
    f1()


    2 名称空间,存放名字与值绑定关系的地方,调用时生效。一共分为三类。
    2.1内置名称空间,print 解释器自带的名字。什么时候都可以使用
    2.2全局名称空间,文件级别,顶头写的函数, if while 都是全局,什么时候都是可以使用的。
    2.3 局部名称空间,函数内是局部的,参数也是,
    内置名称空间:存放Python解释器自带的名字,在解释器启动时就生效,解释器关闭则失效

    全局名称空间:文件级别的名字,在执行文件的时候生效,在文件结束或者在文件执行期间被删除则失效



    3加载顺序 名称空间
    #加载顺序:内置名称空间-》全局名称空间-》局部名称空间
    #查找名字:局部名称空间-》全局名称空间-》内置名称空间
    4作用域
    #全局作用域:包含的是内置名称空间与全局名称空间的名字,
    #特点
    #1在任何位置都能够访问的到
    #2该范围内的名字会伴随程序整个生命周期

    #局部作用域:包含的是局部名称空间的名字
    #特点:
    #1、只能在函数内使用
    #2、调用函数时生效,调用结束失效

    5函数对象:
    函数在python第一类对象:
    5.1 可被引用
    def qwe():
    print('asdasd')

    f=qwe()

    print(f)
    5.2 可当参数传入

     x=1
    def func(a):
    print(a)

    func(x)

    def bar():
    print('from bar')

    def wrapper(func): #func=bar
    func() #bar()

    wrapper(bar)


    5.3 可以当函数的返回值
    X=10
    def asd():
    if X > 2:
    print(X)
    else:
    return (2)

    f=asd()
    print(f)

    5.4 可以当容器的元素。
    def qwe():
        print('asd')

    def asd():
    print('asdd')
    y=[qwe,asd,]

      print(y)
    y[0]()
    y[1]()

    print(y[0](),y[1]())


    6 闭包函数
    闭指的是定义在函数内部的函数
    作用域关系,在函数定义阶段就定义死了,与调用位置无关。
    def qwe():
    x=2
    def asd():
    print('thx',x)
    def zxc():
    print('bnm',x)
    return zxc
    return asd

    qwe()()()










  • 相关阅读:
    TestCafe 快速上手(一)
    Github Page & Jekyll 搭建博客
    SQL注入学习笔记
    DVWA 渗透测试(SQL)平台搭建 XAMPP + Windows
    JavaScript小技巧
    react中引入css的方式有哪几种?区别?
    TypeScript 中接口的理解?应用场景?
    TypeScript 中枚举类型的理解?应用场景?
    Typescript 的数据类型有哪些?
    TypeScript 的理解?与 JavaScript 的区别?
  • 原文地址:https://www.cnblogs.com/seanliang/p/8665764.html
Copyright © 2011-2022 走看看