问:说说Python中变量的作用域?

答:作用域是针对变量而出现。当变量被赋值的时候,变量当前的位置就决定了变量能够被访问到的范围,这个范围就叫变量的作用域,也可以叫变量的命名空间。

在 Python 中存在 4 类作用域:本地作用域、嵌套作用域、全局作用域、内置作用域。python按照LEGB原则搜索变量,即优先级L>E>G>B。L (Local) 局部作用域 E (Enclosing) 闭包函数外的函数中 G (Global) 全局作用域 B (Built-in) 内建作用域# dir 为python内建函数

dir = 1 # Global

def outer():

dir = 2 # Enclosing

def inner():

dir = 3 # Local

return dir

return inner

print(outer()()) # 输出3

1、本地作用域是在函数内部生成的变量命名空间。

2、嵌套作用域是在类、嵌套函数内部生成的命名空间。

3、全局作用域指的是一个模块,即 Python 的源码文件(.py 文件)。

4、内置作用域其实也是一个 Python 的内置模块(builtins),只是在程序启动的时候,Python 虚拟机会自动加载这个模块,所以在程序的任何地方都可以使用内置模块里的变量。例:print 函数

python类中变量作用域_说说Python中变量的作用域?相关推荐

  1. 在python中、实例变量在类的内部通过_【python】类变量、实例变量

    1.类变量.实例变量概念 类变量: 类变量就是定义在类中,但是在函数体之外的变量.通常不使用self.变量名赋值的变量.类变量通常不作为类的实例变量的,类变量对于所有实例化的对象中是公用的. 实例变量 ...

  2. python中none算变量吗_在python中对变量判断是否为None的三种方法总结

    三种主要的写法有: 第一种:if X is None; 第二种:if not X: 当X为None,  False, 空字符串"", 0, 空列表[], 空字典{}, 空元组()这 ...

  3. python中matrix函数_使用python解线性矩阵方程(numpy中的matrix类)

    这学期有一门运筹学,讲的两大块儿:线性优化和非线性优化问题.在非线性优化问题这里涉及到拉格朗日乘子法,经常要算一些非常变态的线性方程,于是我就想用python求解线性方程.查阅资料的过程中找到了一个极 ...

  4. python中mod运算符_自定义 Python 类中的运算符和函数重载(上)

    Python部落(python.freelycode.com)组织翻译,禁止转载,欢迎转发. 如果你对 Python 中的str对象使用过 + 或 * 运算符,你一定注意到了它的操作与 int 或 f ...

  5. 哪些不符合python语言变量名_以下选项中不符合 Python 语言变量命名规则的是( )_学小易找答案...

    [单选题]下列各项中,关于银行存款业务的表述中正确的是( ).(2012年) [单选题]下列各项中,关于企业无法查明原因的现金溢余,经批准后应贷记的会计科目是( ). [多选题]计价软件中,在人材机汇 ...

  6. 下列变量名不符合python命名规范的是_下列选项中不符合Python语言变量命名规则的是...

    [单选题]下列Python保留字中,不用于表示分支结构的是 [单选题]以下程序的输出结果是: j = '' for i in "12345": j += i + ',' print ...

  7. python 参数类型的多态_【Python】面向对象:类与对象\封装\继承\多态

    六.Python面向对象--类与对象\封装\继承\多态 1.什么是面向对象编程 1.1 程序设计的范式:程序可控,易于理解 1.2 抽象并建立对象模型 1.3 程序是不同对象相互调用的逻辑.每个对象在 ...

  8. python类的构造方法名称_搞懂Python的类和对象名称空间

    代码块的分类 python中分几种代码块类型,它们都有自己的作用域,或者说名称空间:文件或模块整体是一个代码块,名称空间为全局范围 函数代码块,名称空间为函数自身范围,是本地作用域,在全局范围的内层函 ...

  9. 88是python语言的整数类型_少儿Python编程_第三讲:常量变量和数据类型

    无论使用哪一种编程语言,甚至是学习数学.物理,都需要掌握常量.变量.表达式的概念和用法.本讲将带领读者进入编程世界,学习程序的基本元素. 3.1 基本数据类型 基本数据类型有数值型.布尔型和字符型.它 ...

  10. python getattr调用自己模块_在Python中通过getattr获取对象引用的方法

    getattr函数 (1)使用 getattr 函数,可以得到一个直到运行时才知道名称的函数的引用. >>> li = ["Larry", "Curly ...

最新文章

  1. mybatis-plus 多列映射成数组_JavaScript 为什么需要类数组
  2. linux java aptget_apt-get没有安装任何linux服务器
  3. IDEA设置远程debug调试
  4. redis-server.exe redis.windows.conf 报错
  5. 如何在 Outlook 中使用外出时的助理程序
  6. handler和thread之间如何传输数据_使用Mac OS X如何开启和配置防火墙
  7. Windows Phone 资源管理与换肤思考
  8. Win10系统鼠标滑轮灵敏度怎么设置
  9. Spring Boot (4)---配置文件详解
  10. oracle的rac环境,RAC环境数据库的备份
  11. 怎么管理Websphere应用服务器?
  12. 51Nod - 1385 凑数字
  13. js排序的时间复杂度_各种排序算法时间复杂度
  14. LeetCode 741. 摘樱桃 (网格DP)
  15. Linux电源管理(五)thermal【转】
  16. 元宇宙持续引发关注,微软计划明年发布相关产品 | 产业区块链发展周报
  17. XAMPP打开MySQL报错Port 3306 in use by ... MySQL
  18. 当x大于时,y等于1;当x等于0时,y等于0;当x小于0时,y等于-1。
  19. 转自博客园:http://www.cnblogs.com/txw1958/p/wechat-tutorial.html
  20. PAID Network攻击事件分析 | 零时科技

热门文章

  1. idea导入gradle项目ctrl无法定位问题
  2. 关于element el-button使用$attrs的一个注意要点
  3. Oracle EBS R12 电子技术参考手册 - eTRM (电子文档)
  4. 练手小程序之约瑟芬杀人法
  5. thinkphp中volist 和foreach 的区别
  6. Hibernate存取JSON数据
  7. crontab周期任务
  8. c++大作业--学籍管理系统--
  9. CCNA 笔记-11
  10. Android dex修复工具,Android 简单热修复(下)——基于DexClassLoader的实现