Python学习教程(learning Python)--2.2.2 Python全局和局部变量

时间:2022-12-19 00:13:38

Python的变量也有全局和局部变量之分。

1. 局部变量

用在子函数里的变量称之为局部变量,其生命周期为该函数执行周期,即函数执行完后变量即不存在。由于局部变量和某个函数直接相关,故不同子函数里可以定义相同名的变量,互相互不影响。请看下例。

def fun1()
   x = 12;
   print(x)
def fun2()
   x = 13;
   print(x)
fun1()
fun2()

子函数fun1执行结果是打印x的值为12,子函数fun2打印的x的值为13.1-3行为fun1函数的定义,4-6行定义了函数fun2。第7行是调用fun1函数,第8行调用fun2函数。

2. 全局变量

与局部变量相对的概念是全局变量,全局变量不专属于某个子函数,所有函数均可使用全局变量,它的生命周期是整个程序执行期间。需要注意的是子函数里如果有对全局变量进行修改,在修改语句前必须用global声明这个变量是全局变量;如果子函数仅仅是读这个全局变量,可不用global声明。

def pprint():
        x = 12
        print(x)
        global z
        print("p")
        z = z + 10
def oprint():
        x = 13
        print(x)
        print("o")
        print(z)
z = 15
pprint()
oprint()

  看pprint函数里,由于有z = z + 10的写z操作,在修改z之前必须声明z是全局变量,否则pprint函数会把z看作自己的局部变量;而在oprint函数里print函数仅仅是读z的值,此时不需要声明z是全局变量。

智普教育Python www.jeapedu.com

———————————————————————————————————