歡迎來到Linux教程網
Linux教程網
Linux教程網
Linux教程網
Linux教程網 >> Linux編程 >> Linux編程 >> Python基礎教程 - global關鍵字及全局變量的用法

Python基礎教程 - global關鍵字及全局變量的用法

日期:2017/3/1 9:31:18   编辑:Linux編程

Python中global關鍵字主要作用是聲明變量的作用域。

在C語言中,由於變量一定是先聲明,後使用,所以我們可以清楚的知道,現在使用的變量是全局還是局部,比如:

int a = 5;

void test(void)
{
a = 1; // 沒有先聲明,所以用的是全局的變量a
}

void test1(void)
{
int a;
a = 2; // 前面聲明了,所以用的是局部變量a,對其所做的修改不會影響全局變量a
}

void main(void)
{
printf("before: a = %d\n", a);
test();
printf("after test: a = %d\n", a);
test1();
printf("after test1: a = %d\n", a);
}

在python中,變量不需要先聲明,直接使用即可,那我們怎麼知道用的是局部變量還是全局變量呢?
首先:python使用的變量,在默認情況下一定是用局部變量。
其次:python如果想使用作用域之外的全局變量,則需要加global前綴。
舉例說明,不用global的情況:

a = 5
def test():
a = 1
print 'In test func: a = %d' % a
test()
print 'Global a = %d' % a

程序執行結果為:

In test func: a = 1
Global a = 5

可以看出,不加global的時候,在函數內部是改不了外面的全局變量的(list類型例外)。

下面是使用global前綴的情況:

a = 5

def test():
global a
#此處聲明,告訴執行引擎:我要用全局變量a,不要整成局部的了!
a = 1
print 'In test func: a = %d' % a

test()
print 'Global a = %d' % a

執行結果:

In test func: a = 1
Global a = 1

可以看出,在函數內部成功的修改了全局變量的數值。

事實上,網絡上很多文章推崇另外的一種方法來使用全局變量:使用單獨的global文件。

方法如下:
1. 在同一個文件夾下,新建2個文件: myglobal.py test.py
2. myglobal.py中放置全局變量,內容示例如下:

a = 0
b = 1
c = 2
d = 3

3. test.py中是測試代碼,其中可以使用全局變量

import myglobal

def test():
myglobal.a = 100

print 'myglobal a = %d' % myglobal.a
test()
print 'after test, myglobal a = %d' % myglobal.a

執行test.py的結果如下:

myglobal a = 0
after test, myglobal a = 100

OK,同樣成功修改了全局變量(這個說法不准確,但姑且就這麼叫吧)。

在實際使用中,兩種方法各有優勢,通常我們大多數時候只是用python寫小功能的腳本,此時用global關鍵字就夠了。

如果寫比較大的功能應用時,用後一種方法可以使得全局變量的管理更為方便。

--------------------------------------分割線 --------------------------------------

CentOS上源碼安裝Python3.4 http://www.linuxidc.com/Linux/2015-01/111870.htm

《Python核心編程 第二版》.(Wesley J. Chun ).[高清PDF中文版] http://www.linuxidc.com/Linux/2013-06/85425.htm

《Python開發技術詳解》.( 周偉,宗傑).[高清PDF掃描版+隨書視頻+代碼] http://www.linuxidc.com/Linux/2013-11/92693.htm

Python腳本獲取Linux系統信息 http://www.linuxidc.com/Linux/2013-08/88531.htm

在Ubuntu下用Python搭建桌面算法交易研究環境 http://www.linuxidc.com/Linux/2013-11/92534.htm

Python 語言的發展簡史 http://www.linuxidc.com/Linux/2014-09/107206.htm

Python 的詳細介紹:請點這裡
Python 的下載地址:請點這裡

Copyright © Linux教程網 All Rights Reserved