美文网首页
python——全局和局部变量

python——全局和局部变量

作者: ELLENXX | 来源:发表于2019-07-15 15:46 被阅读0次
def fn4():
    x=1
print(x)

输出:NameError: name 'x' is not defined
这样会报错,在函数外是访问不了函数内部定义的变量的,因为当函数执行的时候回将函数里定义的变量储存到一个栈内,当函数执行结束就将栈清空,所以之后想要使用函数内定义变量是找不到的。
函数内部定义变量是局部变量,作用域是这个函数内

如果是全局变量,其作用域在这个文件内

如果要在函数里修改全局变量

def fn5():
    n1=1000
    print("1. n1=",n1)
n1=500
fn5()
print("2. n1=",n1)

输出:

  1. n1= 1000
  2. n1= 500
    在函数内可以修改成功,可是在函数外,依然是原来的数字。原因:在函数内修改全局变量的时候,实际上是新创建了一个和全局变量同名的局部变量,将想要修改的值赋予这个局部变量,当函数执行完,局部变量被清除,原来的全局变量依然没有修改。
    如果一定要在函数中修改全局变量,可以使用global
def fn5():
    global n1
    n1=1000
    print("1. n1=",n1)
n1=500
fn5()
print("2. n1=",n1)

输出:

  1. n1= 1000
  2. n1= 1000

相关文章

网友评论

      本文标题:python——全局和局部变量

      本文链接:https://www.haomeiwen.com/subject/fhunkctx.html