python全局变量和局部变量有什么区别
一、概念
- 全局变量:在第一层级,作用于整个代码块
- 局部变量:作用于所在函数域,局部变量变成全局变量需声明global(不建议使用,不便于复杂程序调试)
二、全局变量与局部变量最大的区别
python中全局变量和局部变量的最大区别在于局部变量只能通过函数去访问,而全局变量可以直接访问。
三、实例
1、直接在函数中调用全局变量的值
代码:
输出结果:
k1 = 10
k2 = 10
2、修改全局变量的值
【1】修改不可变数据类型(字符串、数字、元组)的全局变量
- 字符串相关代码:
- 输出结果:
- 数字相关代码:
- 输出结果:
- 元组相关代码:
- 输出结果:
在函数中修改不可变数据类型(字符串、数字、元组)的全局变量,会报错。
【2】修改可变数据类型(列表、集合、字典)的全局变量
- 列表相关代码:
- 输出结果:
- 集合相关代码:
- 输出结果:
- 字典相关代码:
输出结果:
在函数中修改可变数据类型(列表、集合、字典)的全局变量,可以修改
3、函数体内调用与全局变量同名的局部变量
- 【情况1】
- 输出结果:
m1: 5
m2: 10
在函数体内,定义了一个局部变量,这个局部变量覆盖住了全局变量。
- 【情况2】
- 输出结果:
原因:在未被赋值之前引用的错误。因为在函数的内部,解释器探测到var被重新赋值了,所以var成为了局部变量,但是在没有被赋值之前就想使用var,便会出现这个错误。
3、使用global关键字
- 代码:
- 输出结果:
m: 10
m1: 5
m2: 5
global第一次是只能定义不能赋值的;
global需要在函数内部声明,若在函数外声明,则函数依然无法操作x
除注明外的文章,均为来源:老汤博客,转载请保留本文地址!
原文地址:https://tangjiusheng.cn/it/5679.html
原文地址:https://tangjiusheng.cn/it/5679.html
大家都在看
- python转义字符有哪些(字符串转义符大全)
- python爬虫入门教程(五分钟学会Python网络爬虫)
- python编译器有哪些(11个最佳的编译器和解释器)
- vba和python哪个实用(vba跟python有什么区别)
- eval在python中的用法(eval函数详解)
- python语言换行符n怎么用(python换行符n使用详解)
- Python return的用法(return语句用法和实践详解)
- python中index是什么意思(index方法详解)
- python字典添加元素(列表中添加元素的多种方法)
- python软件中怎么安装jieba库(python安装jieba库的详细步骤)