• day10函数嵌套


    一、命名关键字

    就是在*后面参数都是命名关键字参数

    特点是必须传值,结束函数必须按照key=value的形式,必须要用指定的key名

    def foo(x,y,*,z)

      print(x,y,z)

    foo(1,2,z=3)

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

    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,200,1))

    2、函数的嵌套定义:在函数内定义其他函数

    def func1():

      print('aa')

      def fun2() #func2=内存地址

        print('bb')

       print(fun2)

       fun2()

    fun1()

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

    三、名称空间:存放名字与值绑定关系的地方
    名称空间分三类:
    1、内置名称空间:存放python解释器自带的名字,在解释器启动时就生效,关闭则失效
    2、全局名称空间:文件级别的名字,在执行文件的时候生效,在文件结束或者在文件执行间被删除失效


    3、局部名称空间:存放函数内定义的名字(函数的参数以及函数内的名字都 存放与局部名称空间),
    在函数调用时临时生效,函数结束则失效
    def func(x):
      y=2
    fun(1)

    加载顺序:内置名称空间-》全局名称空间-局部名称空间
    查找名字:局部名称空间->全局名称空间->内置名称空间


    四:作用域
    全局作用域:包含内置名称空间与全局名称空间的名字,
    特点
    在任何位置都能访问的到
    该范围内的名字会伴随程序整个生命周期
    局部作用域:包含的是局部名称空间的名字
    特点:
    只能在函数内使用
    调用函数时生效,调用结束失效

    函数在python中第一类对象?
    1、可以被引用
    2、可以当中参数传入
    3、可以当中函数的返回值
    4、可以当中容器类型的元素

    def auth():
    print('认证')
    def reigster():
    print('注册')
    def search():
    print('查看')

    l={'1':auth,
    '2':reigster,
    '3':search,
    }
    def interactive():
    while True:
    print('''
    1、认证
    2、注册
    3、查看
    ''')
    choice=input('>>..').strip()
    if choice in l:
    l[choice]()
    else:
    print('非法操作')
    interactive()

    闭包函数
    指定义在函数内部的函数
    作用域关系在函数定义阶段就规定死了,与调用位置无关
    将值以参数的形式传入

    import requests

    def get(url):
    response=requests.get(url)
    if response.status_code == 200:
    print(response.text)


    get('https://www.baidu.com')

    import requests
    import time

    def outter(url): #url='https://www.baidu.com'

    # url='https://www.baidu.com'
    def get():
    response=requests.get(url)
    if response.status_code == 200:
    print(response.text)

    return get



    baidu=outter('https://www.baidu.com')
    python=outter('https://www.python.org')


  • 相关阅读:
    【转】K/3 KIS BOS 插件入门
    [转]SQL Server 存储过程中使用 in 动态变量
    [转]Delphi 12种大小写转换的方法
    cxGrid FilterRow 添加左模糊查询,实现 %ABC%
    cxGrid 锁定一行,让该行数据不能编辑
    K/3工业单据K3BillTransfer的属性及使用方法
    VB6上创建金蝶K/3或KIS旗舰版插件
    MySQL UTF8 中文乱码处理
    两种方法自动部署代码:webhooks钩子自动部署代码方法一 及定时任务自动部署二 简介
    Linux查看进程的4种方法
  • 原文地址:https://www.cnblogs.com/lg04551/p/8665309.html
Copyright © 2020-2023  润新知