Python全局變量用法實(shí)例分析
本文實(shí)例講述了Python全局變量用法。分享給大家供大家參考,具體如下:
全局變量不符合參數(shù)傳遞的精神,所以,平時(shí)我很少使用,除非定義常量。今天有同事問(wèn)一個(gè)關(guān)于全局變量的問(wèn)題,才發(fā)現(xiàn)其中原來(lái)還有門(mén)道。
程序大致是這樣的:
CONSTANT = 0 def modifyConstant() : print CONSTANT CONSTANT += 1 return if __name__ == '__main__' : modifyConstant() print CONSTANT
運(yùn)行結(jié)果如下:
UnboundLocalError: local variable 'CONSTANT' referenced before assignment
看來(lái),全局變量在函數(shù)modifyConstant中邊成了局部變量,似乎全局變量沒(méi)有生效?
做點(diǎn)修改:
CONSTANT = 0 def modifyConstant() : print CONSTANT #CONSTANT += 1 return if __name__ == '__main__' : modifyConstant() print CONSTANT
運(yùn)行正常,看來(lái)函數(shù)內(nèi)部是可以訪問(wèn)全局變量的。
所以,問(wèn)題就在于,因?yàn)樵诤瘮?shù)內(nèi)部修改了變量CONSTANT,Python認(rèn)為CONSTANT是局部變量,而print CONSTANT又在CONSTANT += 1之前,所以當(dāng)然會(huì)發(fā)生這種錯(cuò)誤。
那么,應(yīng)該如何在函數(shù)內(nèi)部訪問(wèn)并修改全局變量呢?應(yīng)該使用關(guān)鍵字global來(lái)修飾變量(有點(diǎn)像PHP):
CONSTANT = 0 def modifyConstant() : global CONSTANT print CONSTANT CONSTANT += 1 return if __name__ == '__main__' : modifyConstant() print CONSTANT
就這么簡(jiǎn)單!
更多關(guān)于Python相關(guān)內(nèi)容感興趣的讀者可查看本站專(zhuān)題:《Python文件與目錄操作技巧匯總》、《Python圖片操作技巧總結(jié)》、《Python數(shù)據(jù)結(jié)構(gòu)與算法教程》、《Python Socket編程技巧總結(jié)》、《Python函數(shù)使用技巧總結(jié)》、《Python字符串操作技巧匯總》、《Python編碼操作技巧總結(jié)》及《Python入門(mén)與進(jìn)階經(jīng)典教程》
希望本文所述對(duì)大家Python程序設(shè)計(jì)有所幫助。
相關(guān)文章
Python自定義命令行參數(shù)選項(xiàng)和解析器
這篇文章主要介紹了Python自定義命令行參數(shù)選項(xiàng)和解析器,本文主要使用的方法為argparse.ArgumentParser(),此模塊可以讓人輕松編寫(xiě)用戶友好的命令行接口,程序定義它需要的參數(shù),需要的朋友可以參考下2023-07-07Python基于dom操作xml數(shù)據(jù)的方法示例
這篇文章主要介紹了Python基于dom操作xml數(shù)據(jù)的方法,結(jié)合實(shí)例形式分析了Python針對(duì)xml格式文件的加載、讀取、節(jié)點(diǎn)與屬性遍歷等相關(guān)操作技巧,需要的朋友可以參考下2018-05-05Python?Requests?基本使用及Requests與?urllib?區(qū)別
在使用Python爬蟲(chóng)時(shí),需要模擬發(fā)起網(wǎng)絡(luò)請(qǐng)求,主要用到的庫(kù)有requests庫(kù)和python內(nèi)置的urllib庫(kù),一般建議使用requests,它是對(duì)urllib的再次封裝,今天通過(guò)本文給大家講解Python?Requests使用及urllib區(qū)別,感興趣的朋友一起看看吧2022-11-11在Django中實(shí)現(xiàn)添加user到group并查看
今天小編就為大家分享一篇在Django中實(shí)現(xiàn)添加user到group并查看,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過(guò)來(lái)看看吧2019-11-11使用python怎樣產(chǎn)生10個(gè)不同的隨機(jī)數(shù)
這篇文章主要介紹了使用python實(shí)現(xiàn)產(chǎn)生10個(gè)不同的隨機(jī)數(shù)方式,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教2022-07-07