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