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关键字。

 

posted @ 2017-01-14 11:17  xuanhui  阅读(838)  评论(0编辑  收藏  举报