网站首页 > 技术文章 正文
通常小白在写代码时,只知道引用变量来应对一些基础的编码问题,当面试官问及局部变量和全局变量的具体细节时,就会一脸懵逼,傻傻分不清楚!其实想要彻底了解局部变量和全局变量的关系,本质是大家需要明白何为作用域!这篇文章会带大家彻底搞懂这三者之的唇齿相依的关联!Python中,程序的变量并不是在哪个位置都可以访问的,访问权限决定于这个变量是在哪里赋值的。变量的作用域决定了在哪一部分程序可以访问哪个特定的变量名称。Python的作用域一共有4种,分别是:
L(Local):最内层,包含局部变量,比如一个函数/方法内部。
E(Enclosing):包含了非局部也非全局的变量。比如两个嵌套函数,一个函数(或类) A 里面又包含了一个函数 B ,那么对于 B 中的名称来说 A 中的作用域就为非局部。
G(Global):当前脚本的最外层,比如当前模块的全局变量。
B(Built-in): 包含了内建的变量/关键字等。,最后被搜索。
Python中只有模块(module),类(class)以及函数(def、lambda)才会引入新的作用域。
局部作用域与全局作用域
定义在函数内部的变量拥有一个局部作用域,定义在函数外的拥有全局作用域。局部变量只能在其被声明的函数内部访问,而全局变量可以在整个程序范围内访问。例如:
内建作用域
我们在模块中的任意位置都可以使用内置变量,例如:
类的作用域
类分为类变量和实例变量,类变量定义在方法外,实例变量定义在方法内。类变量和实例变量的作用域解释说明如下图:
类变量是所有对象共有,其中一个对象将它值改变,其他对象得到的就是改变后的结果;而实例变量则属于对象私有,某一个对象将其值改变,不影响其他对象。如下图所示:
执行代码,运行结果如下:
可以看到代码中 B.c_b=456 影响了实例b2中的类变量结果(从123变为456);而在init方法中,最后一句self.my_var=1 目的是对实例方法进行重新赋值,但是他并未影响b2中my_var的输出(还是0)原创不易,如果文章帮到了你,欢迎转发,让更多的朋友受益!
猜你喜欢
- 2025-06-08 Python函数中的全局变量与局部变量
- 2025-06-08 了解 Python 变量:什么是可变的,什么是不可变的?
- 2025-06-08 python的变量,变量赋值的一些规范
- 2025-06-08 变量:Python里的“容器”一般人可看不懂
- 2025-06-08 Python 变量和数据类型(python中变量类型可以变吗)
- 2025-06-08 精通 Python 中的实例变量:入门指南
- 2025-06-08 C++和python的变量对比(c c++ python区别)
- 2025-06-08 Python零基础小白入门须知变量与常量区别详解
- 2025-06-08 Python-变量、函数、模块、包(python变量有什么用)
- 2025-06-08 一文理解 Python 中的实例变量(python变量举例)
- 264℃Python短文,Python中的嵌套条件语句(六)
- 263℃python笔记:for循环嵌套。end=""的作用,图形打印
- 261℃PythonNet:实现Python与.Net代码相互调用!
- 256℃Python操作Sqlserver数据库(多库同时异步执行:增删改查)
- 256℃Python实现字符串小写转大写并写入文件
- 116℃原来2025是完美的平方年,一起探索六种平方的算吧
- 96℃Python 和 JavaScript 终于联姻了!PythonMonkey 要火?
- 89℃Ollama v0.4.5-v0.4.7 更新集合:Ollama Python 库改进、新模型支持
- 最近发表
-
- 金母鸡量化教学场:pandas—数据挖掘的Python库
- 分享一个用于商业决策数据挖掘的python案例
- Python图像识别实战(二):批量图像读取和像素转换(附源码)
- 从小白到大神,这10个超实用的 Python 编程技巧不可少
- 太震撼!527页战略级Python机器学习实战,实用度碾压群书!附PDF
- 一篇文章带你解析Python进程(一篇文章带你解析python进程怎么写)
- 大数据分析师如何进行数据挖掘?大数据分析师丨 2025 年报考攻略
- UG编程第34节:浅谈机床坐标系(ug编程机床坐标系细节)
- 想入门Python?先狠下心来死磕这7个方向
- Python大屏看板最全教程之Pyecharts图表
- 标签列表
-
- python中类 (31)
- python 迭代 (34)
- python 小写 (35)
- python怎么输出 (33)
- python 日志 (35)
- python语音 (31)
- python 工程师 (34)
- python3 安装 (31)
- python音乐 (31)
- 安卓 python (32)
- python 小游戏 (32)
- python 安卓 (31)
- python聚类 (34)
- python向量 (31)
- python大全 (31)
- python次方 (33)
- python桌面 (32)
- python总结 (34)
- python浏览器 (32)
- python 请求 (32)
- python 前端 (32)
- python验证码 (33)
- python 题目 (32)
- python 文件写 (33)
- python中的用法 (32)