欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页

python global函数/全局变量/局部变量

程序员文章站 2023-12-21 20:12:40
...
  1. 局部变量
    只能在子程序可调用,不可跨程序调用
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
  1. 全局变量:用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

结论:
全局变量必须在程序外赋值,但在程序内或程序外声明都可以。

上一篇:

下一篇: