zoukankan      html  css  js  c++  java
  • python之函数对象、名称空间、嵌套、作用域、闭包

    函数对象

    # 函数名就是存放了函数的内存地址,存放了内存地址的变量都是对象,即 函数名 就是 函数对象

    # 函数对应的原因
    # 1 可以直接被引用
    # 2 可以当作函数参数传递
    # 3 可以作为函数的返回值
    # 4 可以作为容器类型的元素

     

    名称空间

    # 名称空间:存放名字与内存空间地址对应关系的容器
    # 作用:解决由于名字有限,导致名字重复发送冲突的问题

    # 三种名称空间
    # Built-in:内置名称空间;系统级,一个;随解释器执行而产生,解释器停止而销毁
    # Global:全局名称空间;文件级,多个;随所属文件加载而产生,文件运行完毕而销毁
    # Local:局部名称空间;函数级,多个;随所属函数执行而产生,函数执行完毕而销毁

    # 注:
    # del 名字:可以移除查找最近的名字与内存空间地址的对应关系
    # 加载顺序:Built-in > Global > Local

     

    函数的嵌套定义

    # 理由:一个函数要使用另一个函数中的变量

     

    作用域

    # 作用域:名字起作用的范围
    # 作业:解决同名字可以共存问题

    # 四种作用域
    # Built-in:内置作用域
    # Global:全局作用域
    # Enclosing:嵌套作用域
    # Local:局部作用域

    # 注:
    # 不同作用域之间名字不冲突,以达到名字的重用
    # 查找顺序:Local > Enclosing > Global > Built-in

     

    闭包

    # closure:被包裹的函数,称之为闭包

    # 完整的闭包结构:1.将函数进行闭包处理;2.提升函数名的作用域

    # 案例:延迟加载
    def get_site(url): #url='https://www.baidu.com'
       def site():
           response=requests.get(url)
           if response.status_code == 200:
               print(response.text)

       return site
    baidu=get_site('https://www.baidu.com')
    python=get_site('https://www.python.org')

     

  • 相关阅读:
    APUE习题3.2用dup实现dup2以及shell中重定向符号的使用
    如何理解git checkout -- file和git reset HEAD -- file
    bash中通过设置PS1变量改变提示符颜色
    Ubuntu中root的默认密码
    Kali中装中文输入法小企鹅
    Find the Top 10 commands in your linux box!
    简明awk教程(Simple awk tutorial)
    PHP错误解决:Fatal error: Unknown: Failed opening required ...
    简单的端口扫描器(TCP connect)
    c# 爬虫(三) 文件上传
  • 原文地址:https://www.cnblogs.com/dongxixi/p/10648925.html
Copyright © 2011-2022 走看看