python如何使用全局变量-Python教程

资源魔 31 0

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全局变量

抱歉,评论功能暂时关闭!