python系统关键字_Python基础教程 - global关键字及全局变量的用法
Python中g(shù)lobal關(guān)鍵字主要作用是聲明變量的作用域。
在C語言中,由于變量一定是先聲明,后使用,所以我們可以清楚的知道,現(xiàn)在使用的變量是全局還是局部,比如:
int a = 5;
void test(void)
{
a = 1; // 沒有先聲明,所以用的是全局的變量a
}
void test1(void)
{
int a;
a = 2; // 前面聲明了,所以用的是局部變量a,對(duì)其所做的修改不會(huì)影響全局變量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中,變量不需要先聲明,直接使用即可,那我們?cè)趺粗烙玫氖蔷植孔兞窟€是全局變量呢?
首先:python使用的變量,在默認(rèn)情況下一定是用局部變量。
其次:python如果想使用作用域之外的全局變量,則需要加global前綴。
舉例說明,不用global的情況:
a = 5
def test():
a = 1
print 'In test func: a = %d' % a
test()
print 'Global a = %d' % a
程序執(zhí)行結(jié)果為:
In test func: a = 1
Global a = 5
可以看出,不加global的時(shí)候,在函數(shù)內(nèi)部是改不了外面的全局變量的(list類型例外)。
下面是使用global前綴的情況:
a = 5
def test():
global a
#此處聲明,告訴執(zhí)行引擎:我要用全局變量a,不要整成局部的了!
a = 1
print 'In test func: a = %d' % a
test()
print 'Global a = %d' % a
執(zhí)行結(jié)果:
In test func: a = 1
Global a = 1
可以看出,在函數(shù)內(nèi)部成功的修改了全局變量的數(shù)值。
事實(shí)上,網(wǎng)絡(luò)上很多文章推崇另外的一種方法來使用全局變量:使用單獨(dú)的global文件。
方法如下:
1. 在同一個(gè)文件夾下,新建2個(gè)文件: myglobal.py test.py
2. myglobal.py中放置全局變量,內(nèi)容示例如下:
a = 0
b = 1
c = 2
d = 3
3. test.py中是測(cè)試代碼,其中可以使用全局變量
import myglobal
def test():
myglobal.a = 100
print 'myglobal a = %d' % myglobal.a
test()
print 'after test, myglobal a = %d' % myglobal.a
執(zhí)行test.py的結(jié)果如下:
myglobal a = 0
after test, myglobal a = 100
OK,同樣成功修改了全局變量(這個(gè)說法不準(zhǔn)確,但姑且就這么叫吧)。
在實(shí)際使用中,兩種方法各有優(yōu)勢(shì),通常我們大多數(shù)時(shí)候只是用python寫小功能的腳本,此時(shí)用global關(guān)鍵字就夠了。
如果寫比較大的功能應(yīng)用時(shí),用后一種方法可以使得全局變量的管理更為方便。
--------------------------------------分割線 --------------------------------------
Python 的詳細(xì)介紹:請(qǐng)點(diǎn)這里
Python 的下載地址:請(qǐng)點(diǎn)這里
總結(jié)
以上是生活随笔為你收集整理的python系统关键字_Python基础教程 - global关键字及全局变量的用法的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: matlab rgb2hsv v=1,为
- 下一篇: pythonista脚本合集_GitHu