zoukankan      html  css  js  c++  java
  • 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')


  • 相关阅读:
    UML常见工具之Powerdesigner
    在webForm中WebRequest\WebClient\WebBrowser获取远程页面源码的三种方式(downmoon)
    忍不住了,我来说两句,从一道面试题说起
    《UML用户指南第二版》再次温读笔记(一)(downmoon)
    Database Project requires local SQL 2005 instance的解决方案(downmoon)
    JDBC Driver For SQL2000/2005/2008
    服务器更新dll后导致网站崩溃,重启iis也无效的一种解决方案(downmoon)
    白孩儿一个网上流传的故事[生活感悟]
    vs2008中js的语法提示及修正功能(downmoonn)
    Contoso 大学 2 – 实现基本的增删改查
  • 原文地址:https://www.cnblogs.com/lg04551/p/8665309.html
Copyright © 2011-2022 走看看