Python 中,程序的变量并不是在哪个位置都可以访问的,访问权限决定于这个变量是在哪里赋值的。

变量的作用域决定了在哪一部分程序可以访问哪个特定的变量名称。Python的作用域一共有4种,分别是:

  • L (Local) 局部作用域
  • E (Enclosing) 闭包函数外的函数中
  • G (Global) 全局作用域
  • B (Built-in) 内建作用域

以 L –> E –> G –>B 的规则查找,即:在局部找不到,便会去局部外的局部找(例如闭包),再找不到就会去全局找,再者去内建中找。如果想改变搜索范围 可以使用global 和nonlocal 关键字。

# global variable

# 在函数外面定义的a  全局变量

a=100
def foo():
# 函数内部的局部变量 离开foo函数变量a 无法访问
# local variable
global a
a=200
print(a)
foo()
print(a)
结果:
a=200
a=200

  

最新文章

  1. Docker笔记一:基于Docker容器构建并运行 nginx + php + mysql ( mariadb ) 服务环境
  2. mysqldump命令的常用组合
  3. Atitit.工作流系统的本质是dsl 图形化的dsl  4gl
  4. [book]awesome-machine-learning books
  5. 【转载】C++针对ini配置文件读写大全
  6. VMWare9下基于Ubuntu12.10搭建Hadoop-1.2.1集群
  7. SQL 关于有单引号数据更新的问题
  8. widget intent重复问题
  9. jq轮播图插件
  10. User Browsing Model简介
  11. android studio gradle 两种更新方法更新
  12. .Net cache与cache更新
  13. java常用字节流
  14. MVC基本开发介绍 (1)列表展示
  15. php memcached-gui工具
  16. Android 小票打印USB
  17. python_06 函数、全局变量与局部变量、函数递归
  18. CentOS7 开放服务端口
  19. react native 使用TabNavigator编写APP底部导航
  20. Valgrind 内存泄漏工具

热门文章

  1. 【操作系统之九】Linux常用命令之netstat
  2. Python【每日一问】27
  3. - Java中boolean类型占用多少个字节 MD
  4. framework7 总结之前遇到的问题和踩过的坑
  5. C#DataTable使用方法详解
  6. 原生js数值开根算法
  7. 详解JS与Jquery获得的对象的区别与联系
  8. [Linux] - 服务器/VPS一键检测带宽、CPU、内存、负载、IO读写
  9. 【转载】C#通过InsertAt方法在DataTable特定位置插入一条数据
  10. 【转】Webpack 快速上手(中)