python全局变量的应用:一、援用全局变量,代码为【if i in b:print("%d in list b" %i)】;二、修正全局变量,代码为【print "before func b:", b】。
python全局变量的应用:
1、援用
应用到的全局变量只是作为援用,没有正在函数中修正它的值的话,没有需求加global要害字。如:
#! /usr/bin/python a = 1 b = [2, 3] def func(): if a == 1: print("a: %d" %a) for i in range(4): if i in b: print("%d in list b" %i) else: print("%d not in list b" %i) if __name__ == '__main__': func()
输入后果:
能够看出,无论是列表仍是变量,都是能够间接援用的。
2、修正
应用到的全局变量,需求正在函数中修正的话,就触及到歧义成绩,如:
#! /usr/bin/python a = 1 b = [2, 3] def func(): a = 2 print "in func a:", a b[0] = 1 print "in func b:", b if __name__ == '__main__': print "before func a:", a print "before func b:", b func() print "after func a:", a print "after func b:", b
输入后果:
能够看出,关于变量a,正在函数func中"a = 2",由于存正在既能够示意援用全局变量a,也能够示意创立一个新的部分变量的歧义,以是python默许指定创立一个新的部分变量来消弭这一歧义,但关于列表b而言,"b[0] = 1"没有存正在这类歧义。
因而间接修正了全局变量,然而假如改为了"b = [3, 4]",那末b也会变为部分变量。特地地,当正在func中a = 2以前退出"if a == 1:"这一语句,剧本运转犯错,由于这一语句引入了全局变量,招致了"a = 1"这一语句无奈创立同名的部分变量。
因而,需求修正全局变量a,能够正在"a = 2"以前退出global a申明,如:
#! /usr/bin/python a = 1 b = [2, 3] def func(): global a a = 2 print "in func a:", a b[0] = 1 print "in func b:", b if __name__ == '__main__': print "before func a:", a print "before func b:", b func() print "after func a:", a print "after func b:", b
输入后果:
论断:援用全局变量,没有需求golbal申明,修正全局变量,需求应用global申明,特地地,列表、字典等假如只是修正此中元素的值,能够间接应用全局变量,没有需求global申明。
以上就是python若何应用全局变量的具体内容,更多请存眷资源魔其它相干文章!
标签: python教程 python编程 python使用问题 python全局变量
抱歉,评论功能暂时关闭!