作用域

作用域分为:

  1. 全局作用域
  2. 局部作用域

在函数内部的作用域叫做局部作用域,局部作用域中的变量叫做局部变量

非函数内部的作用域叫做全局作用域,全局作用域中的变量叫做全局变量

局部作用域可以使用全局变量,全局变量不能试用局部变量

变量的使用规则: 从内向外,找到后返回

  1. 函数作用域中命名全局变量global
def fn():
global 变量 # 现在改变量为全局变量
# 注意:不可以在函数中先使用一个全局变量后在用该变量命名局部变量
报错:
a = 1
def fn():
print(a) # 全局变量
a += 1 # 这个a是局部变量
  1. 在函数或其他作用域中使用或修改上一层(非全局)变量nonlocal
a = 1
def fn1():
a = 2
def fn2():
a = 3 # a = 4
def fn3():
nonlocal a
a = 4
报错:
b = 1
def fn():
nonlocal b

命名空间

命名空间: python中的所有变量都被存储在命名空间内,每个作用域都有一个命名空间
命名空间本质就是一个字典,是用来存储变量的字典
locals():获得挡前作用域的命名空间

python 作用域与命名空间的更多相关文章

  1. Python 作用域和命名空间

    在介绍类之前,我首先要告诉你一些Python的作用域规则.类定义对命名空间有一些巧妙的技巧,你需要知道作用域和命名空间如何工作才能完全理解正在发生的事情.顺便说一下,关于这个主题的知识对任何高级Pyt ...

  2. python作用域与命名空间

    什么是命名空间 比如有一个学校,有10个班级,在7班和8班中都有一个叫“小王”的同学,如果在学校的广播中呼叫“小王”时,7班和8班中的这2个人就纳闷了,你是喊谁呢!!!如果是“7班的小王”的话,那么就 ...

  3. python 作用域,命名空间

    def scope_test(): def do_local(): spam = "local spam" def do_nonlocal(): nonlocal spam spa ...

  4. Python3.2官方文档翻译--作用域和命名空间

    6.2 Python作用域和命名空间 在介绍类之前.首先我想告诉你一些关于python作用域的规则. 类的定义很巧妙地运用了命名空间,你须要知道范围和命名空间的工作原理以能全面了解接下来发生的. 顺便 ...

  5. 详解Python的作用域和命名空间

    最近在学习Python,不得不说,Python真的是一门很好用的语言.但是学习的过程中关于变量作用域(scope)的命名空间(namespace)的问题真的把我给搞懵了.在查阅了相关资料之后,觉得自己 ...

  6. 九. Python基础(9)--命名空间, 作用域

    九. Python基础(9)--命名空间, 作用域 1 ● !a 与 not a 注意, C/C++可以用if !a表示if a == 0, 但是Python中只能用if not a来表示同样的意义. ...

  7. python作用域问题

    今天出了个低级的错误,最后确定是作用域问题,特回顾知识点如下: 在Python程序中创建.改变.查找变量名时,都是在一个保存变量名的空间中进行,我们称之为命名空间,也被称之为作用域. Python的作 ...

  8. python基础-3 集合 三元运算 深浅拷贝 函数 Python作用域

    上节课总结 1 运算符 in 字符串 判断  : “hello” in "asdasfhelloasdfsadf" 列表元素判断:"li" in ['li', ...

  9. 13.Python中的命名空间是什么

    Python中的命名空间是什么? In Python,every name introduced has a place where it lives and can be hooked for. T ...

随机推荐

  1. python小题目练习(六)

    需求:编写一个猜数字的小游戏,随机生成1到10(包含1和10)之间的数字作为基准数,玩家每次通过键盘输入一个数字,如果输入的数字跟基准数相同,则闯关成功,否则重新输入,如果玩家输入的是-1,则表示退出 ...

  2. 使用dnSpy对无源码EXE或DLL进行反编译并且修改

    背景 总有一些特殊情况,我们没有源码,但是某个C#程序集dll或者可执行程序exe影响到我们代码的正常运行,我们希望得到源码,能改掉或者修改某些bug,但是苦于没有源码,这个时候可以用dnspy进行源 ...

  3. StarGAN论文及代码理解

    StarGAN的引入是为了解决多领域间的转换问题的,之前的CycleGAN等只能解决两个领域之间的转换,那么对于含有C个领域转换而言,需要学习C*(C-1)个模型,但StarGAN仅需要学习一个,而且 ...

  4. AI2(App Inventor 2) 离线版

    介绍 我们的目标:搭建一个本地多用户的App Inventor 2 服务器目的:课堂教学,社团活动,兴趣学习优势:管理权限(用户管理,账号切换,资源打包),网络链接速度快,拥有配套服务.注意:每次退出 ...

  5. 没有编辑器时,使用echo更换源

    echo "\ deb http://mirrors.aliyun.com/ubuntu/ xenial main deb-src http://mirrors.aliyun.com/ubu ...

  6. 【破解】设置 Codesys for Raspberry 每118分钟自动重启Runtime

    Codesys for Raspberry 无授权时,试用2小时后会自动退出,重启Runtime后就又恢复2小时试用时长. 官网授权购买地址: [单核] https://store.codesys.c ...

  7. SpringBoot集成文件 - 集成POI之Excel导入导出

    Apache POI 是用Java编写的免费开源的跨平台的 Java API,Apache POI提供API给Java程序对Microsoft Office格式档案读和写的功能.本文主要介绍通过Spr ...

  8. 在 Windows msys2 下编译 scryer-prolog

    by chesium 2022/7/24 深夜 参考:https://github.com/mthom/scryer-prolog/blob/master/README.md 采用 msys2 环境编 ...

  9. Nmap 操作手册 - 完整版

    目录 Nmap - 基础篇 Nmap 安装 RedHat Windows Debina & Ubuntu Others Linux Nmap 参数(简单版) 目标说明 主机发现 扫描技术 端口 ...

  10. java日常开发必备:list的四种遍历

      在平时的开发过程中使用List的场景很多,你知道List的遍历有多少种方式?今天一起来梳理下List的几种遍历方式.这里以java.util.ArrayList为例来演示.   这里有一个最简单的 ...