python global函数/全局变量/局部变量
程序员文章站
2023-12-21 20:12:40
...
- 局部变量
只能在子程序可调用,不可跨程序调用
def fun():
a = 10
print(a)
def fun1():
b=20
c=a+b
print(c)
print('调用函数fun')
fun()
print('调用函数fun1')
fun1()
输出:
调用函数fun
10
调用函数fun1
Traceback (most recent call last):
File "C:\Users\高顿\Desktop\myblog.py", line 13, in <module>
fun1()
File "C:\Users\高顿\Desktop\myblog.py", line 7, in fun1
c=a+b
NameError: name 'a' is not defined
- 全局变量:用global 声明,可在全局调用
情况1:
在函数外声明全局变量:(可行)
global m
m=30
def fun():
a = 10
b=a+m
print(b)
print('调用函数fun')
fun()
输出:
调用函数fun
40
情况2.
在函数1内声明全局变量,在函数2内调用:(不可行)
def fun():
global m
m=30
pass
def fun1():
b=20
c=b+m
print(c)
print('调用函数fun1')
fun1()
输出:
调用函数fun1
Traceback (most recent call last):
File "C:\Users\高顿\Desktop\myblog.py", line 14, in <module>
fun1()
File "C:\Users\高顿\Desktop\myblog.py", line 10, in fun1
c=b+m
NameError: name 'm' is not defined
情况3
在函数外赋值变量,在函数1内声明将其声明为全局变量,在函数2内调用(可行)
m=30
def fun():
global m
pass
def fun1():
b=20
c=b+m
print(c)
print('调用函数fun1')
fun1()
输出:
调用函数fun1
50
结论:
全局变量必须在程序外赋值,但在程序内或程序外声明都可以。