32 python - 局部变量和全局变量

简介: 32 python - 局部变量和全局变量

1.局部变量

如下图所示:

  • 局部变量,就是在函数内部定义的变量。
  • 不同的函数,可以定义相同的名字的局部变量,但是各用个的不会产生影响。
  • 局部变量的作用,为了临时保存数据需要在函数中定义变量来进行存储,这就是它的作用。

2.全局变量

如果一个变量,既能在一个函数中使用,也能在其他的函数中使用,这样的变量就是全局变量:

# 定义全局变量
a = 100
def test1():
   print(a)
def test2():
   print(a)
# 调用函数
test1()
test2()

运行结果:

3.全局变量和局部变量名字相同问题

4.修改全局变量

既然全局变量,就是能够在所以的函数中进行使用,那么可否进行修改呢?

代码如下:

  1. 在函数外边定义的变量叫做全局变量。
  2. 全局变量能够在所有的函数中进行访问。
  3. 如果在函数中修改全局变量,那么就需要使用global进行声明,否则出错。
  4. 如果全局变量的名字和局部变量的名字相同,那么使用的是局部变量的,小技巧强龙不压地头蛇。

5.变类型的全局变量

>>> a = 1
>>> def f():
...     a += 1
...     print a
...
>>> f()
Traceback (most recent call last):
  File "<stdin>", line 1, in <module>
  File "<stdin>", line 2, in f
UnboundLocalError: local variable 'a' referenced before assignment
>>>
>>>
>>> li = [1,]
>>> def f2():
...     li.append(1)
...     print li
...
>>> f2()
[1, 1]
>>> li
[1, 1]
  • 在函数中不使用global声明全局变量时不能修改全局变量的本质是不能修改全局变量的指向,即不能将全局变量指向新的数据。
  • 对于不可变类型的全局变量来说,因其指向的数据不能修改,所以不使用global时无法修改全局变量。
  • 对于可变类型的全局变量来说,因其指向的数据可以修改,所以不使用global时也可修改全局变量。
目录
相关文章
|
6月前
|
Python
Python中通过字符串访问与修改局部变量
Python中通过字符串访问与修改局部变量
73 0
|
8月前
|
Python
在Python中,全局变量和局部变量是两种不同类型的变量
【5月更文挑战第10天】Python中的全局变量在函数外部定义,作用域覆盖整个程序,生命周期从开始到结束。局部变量仅限于函数内部,生命周期从调用到返回。在函数内修改全局变量需用`global`关键字声明,否则会创建局部变量。
66 3
|
3月前
|
Java Go C++
【Python】函数的定义和调用、形参和实参、函数的返回值、多元赋值、全局和局部变量
【Python】函数的定义和调用、形参和实参、函数的返回值、多元赋值、全局和局部变量
36 0
|
5月前
|
存储 Python
Python 中的局部变量和全局变量
【8月更文挑战第29天】
79 0
|
6月前
|
Python
Python中的全局变量和局部变量是什么?
在 Python 中, 全局变量与局部变量在作用域及访问权限上有着明显区别。全局变量在整个程序范围内均可访问, 如定义 `global_var` 并在函数 `func_using_global()` 内使用。局部变量仅在其定义的函数内有效, 如 `func_creating_local()` 中的 `local_var`, 在函数外访问会引发 `NameError`。
127 3
|
6月前
|
Python
Python代码优化避免全局变量
【7月更文挑战第22天】
83 2
|
6月前
|
存储 Java Linux
Python----全局变量、内存管理、数据类型
Python----全局变量、内存管理、数据类型
|
7月前
|
Python
Python中有效地使用global和globals()来管理全局变量
Python中有效地使用global和globals()来管理全局变量
114 1
|
8月前
|
Python
【python】python全局变量怎么使用?
【python】python全局变量怎么使用?
45 1
|
8月前
|
Python
Python的全局变量作用于整个程序,生命周期与程序相同,而局部变量仅限函数内部使用,随函数执行结束而销毁。
【5月更文挑战第11天】Python的全局变量作用于整个程序,生命周期与程序相同,而局部变量仅限函数内部使用,随函数执行结束而销毁。在函数内部修改全局变量需用`global`关键字声明,否则会创建新局部变量。
179 2
下一篇
开通oss服务