python 全局变量

example1.

全局变量不修改值,只是引用时,在哪里都可以直接引用

a=1

b=[2,3]

def func():

      print a

      print b

if __name__ == "__main__":

    func()


输出:a=1  b=[2,3]


example2.

全局变量修改值,

a=1

b=[2,3]

def func():

      a=4

      b[0]=1

      print a

      print b

if __name__ == "__main__":

    func()


输出:a=4  b=[1,3]

该种情形下全局变量值被修改,在函数体内变为局部变量,  但b仍为全局变量


example3.

全局变量修改值,但引用时添加 global a 声明

a=1

b=[2,3]

def func():

     global a

      a=4

      print a

      print b

if __name__ == "__main__":

    func()


输出:a=4  b=[2,3]

该种情形下全局变量值被修改,在函数体内仍为全局变量


example4.

全局变量修改值,但开始时添加 global a 声明

global a

b=[2,3]

def func():

     global a

      a=4

      print a

      print b

if __name__ == "__main__":

   func()


输出:a=4  b=[2,3]

该种情形下a为全局变量


结论:引用全局变量,不需要golbal声明,修改全局变量,需要使用global声明,特别地,列表、字典等如果只是修改其中元素的值,可以直接使用全局变量,不需要global声明。





猜你喜欢

转载自blog.csdn.net/sinat_36024346/article/details/80606426