前言
在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 關鍵字可以定義一個變量為全局變量,但是這個僅限于在一個模塊(py文件)中調用全局變量,在另外一個py文件 再次使用 global x 也是無法訪問到的,因為在這個py模塊中并沒有一個叫做x的變量,于是就會報錯 未定義。
借鑒global 關鍵字的思路,既然在一個文件里面可以生效的話,那么我們就專門為全局變量定義一個“全局變量管理模塊”就好了
全局變量管理模塊 globalvar.py
#!/usr/bin/python# -*- coding: utf-8 -*-def _init(): global _global_dict _global_dict = {}def set_value(name, value): _global_dict[name] = valuedef get_value(name, defValue=None): try: return _global_dict[name] except KeyError: return defValue設置全局變量 a.py
#!/usr/bin/python# -*- coding: utf-8 -*-import sysimport globalvar as glgl._init()gl.set_value('name', 'cc')gl.set_value('score', 90)獲取全局變量 b.py
#!/usr/bin/python# -*- coding: utf-8 -*-import globalvar as glname = gl.get_value('name')score = gl.get_value('score')print("%s: %s" % (name, score))主程序 main.py
#!/usr/bin/python# -*- coding: utf-8 -*-import aimport b
然后運行主程序文件 python main.py,得出的結果是 cc: 90
總結
以上就是這篇文章的全部內容了,希望本文的內容對大家的學習或者工作具有一定的參考學習價值,如果有疑問大家可以留言交流,謝謝大家對武林站長站的支持。
新聞熱點
疑難解答