python中修改函数内部的变量会发生什么

 最近写python遇到个函数内部变量使用外部变量的问题,现在总结下吧

#!/usr/bin/env python

a = 100
def su():
  a = a + 1
  print(a)

s = su()

#执行这段代码会报错(如果只是调用不修改是不会报错的)

更改为:

#!/usr/bin/env python

a = 100
def su():
  global a
  a = a + 1
  print(a)

s = su()

总结:

在python的函数中和全局同名的变量,如果修改变量的值就会变成局部变量,

在修改之前对该变量的引用自然就会出现没定义这样的错误了,

如果确定要引用全局变量,并且要对它修改,必须加上global关键字。

原文地址:https://www.cnblogs.com/fanxuanhui-linux/p/6284921.html