笨鸟编程-零基础入门Pyhton教程

 找回密码
 立即注册

9.2.1. 作用域和命名空间示例

发布者: 笨鸟自学网

以下是一个示例,演示了如何引用不同作用域和命名空间,以及 global 和 nonlocal 如何影响变量绑定:

def scope_test():
    def do_local():
        spam = "local spam"
    def do_nonlocal():
        nonlocal spam
        spam = "nonlocal spam"
    def do_global():
        global spam
        spam = "global spam"
    spam = "test spam"
    do_local()
    print("After local assignment:", spam)
    do_nonlocal()
    print("After nonlocal assignment:", spam)
    do_global()
    print("After global assignment:", spam)

scope_test()
print("In global scope:", spam)

以上示例代码的输出为:

After local assignment: test spam
After nonlocal assignment: nonlocal spam
After global assignment: nonlocal spam
In global scope: global spam

注意:local 赋值语句是无法改变 scope_test 的 spam 绑定。nonlocal 赋值语句改变了 scope_test 的 spam 绑定,并且 global 赋值语句从模块级改变了 spam 绑定。

你也可以看到在 global 赋值语句之前对 spam 是没有预先绑定的。

Python3编程手册
  1. Python 入门指南

  2. 1. 开胃菜

  3. 2. 使用 Python 解释器

  4. 2.1. 调用 Python 解释器

  5. 2.2. 解释器及其环境

  6. 3. Python 简介

  7. 3.1. 将 Python 当做计算器

  8. 3.2. 编程的第一步

  9. 4. 深入 Python 流程控制

  10. 4.1. if 语句

  11. 4.2. for 语句

  12. 4.3. range() 函数

  13. 4.4. break 和 continue 语句

  14. 4.5. pass 语句

  15. 4.6. 定义函数

  16. 4.7. 深入 Python 函数定义

  17. 4.8. 插曲:编码风格

  18. 5. 数据结构

  19. 5.1. 关于列表更多的内容

  20. 5.2. del 语句

  21. 5.3. 元组和序列

  22. 5.4. 集合

  23. 5.5. 字典

  24. 5.6. 循环技巧

  25. 5.7. 深入条件控制

  26. 5.8. 比较序列和其它类型

  27. 6. 模块

  28. 6.1. 深入模块

  29. 6.1.1. 作为脚本来执行模块

  30. 6.1.2. 模块的搜索路径

  31. 6.1.3. “编译的” Python 文件

  32. 6.2. 标准模块

  33. 6.3. dir() 函数

  34. 6.4. 包

  35. 7. 输入和输出

  36. 7.1. 格式化输出

  37. 7.2. 文件读写

  38. 8. 错误和异常

  39. 8.1. 语法错误

  40. 8.2. 异常

  41. 8.3. 异常处理

  42. 8.4. 抛出异常

  43. 8.5. 用户自定义异常

  44. 8.6. 定义清理行为

  45. 8.7. 预定义清理行为

  46. 9. 类

  47. 9.1. 术语相关

  48. 9.2. Python 作用域和命名空间

  49. 9.2.1. 作用域和命名空间示例

  50. 9.3. 初识类

  51. 9.4. 一些说明

  52. 9.5. 继承

  53. 9.6. 私有变量

  54. 9.7. 补充

  55. 9.8. 异常也是类

  56. 9.9. 迭代器

  57. 9.10. 生成器

  58. 9.11. 生成器表达式

  59. 10. Python 标准库概览

  60. 10.1. 操作系统接口

  61. 10.2. 文件通配符

  62. 10.3. 命令行参数

  63. 10.4. 错误输出重定向和程序终止

  64. 10.5. 字符串正则匹配

  65. 10.6. 数学

  66. 10.7. 互联网访问

  67. 10.8. 日期和时间

  68. 10.9. 数据压缩

  69. 10.10. 性能度量

  70. 10.11. 质量控制

  71. 10.12. “瑞士军刀”

  72. 11. 标准库浏览

  73. 11.1. 输出格式

  74. 11.2. 模板

  75. 11.3. 使用二进制数据记录布局

  76. 11.4. 多线程

  77. 11.5. 日志

  78. 11.6. 弱引用

  79. 11.7. 列表工具

  80. 11.8. 十进制浮点数算法

  81. 12. 虚拟环境和包

  82. 12.1. 简介

  83. 12.2. 创建虚拟环境

  84. 12.3. 使用 pip 管理包

Archiver|手机版|笨鸟自学网 ( 粤ICP备20019910号 )

GMT+8, 2024-7-27 19:05 , Processed in 1.098442 second(s), 17 queries .

© 2001-2020

返回顶部