Python 局部变量和全局变量 - Python零基础入门教程
目錄
- 一.前言
- 二.Python 局部變量
- 三.Python 全局變量
- 四.Python 局部變量和全局變量的區(qū)別
- 五.重點總結(jié)
- 六.猜你喜歡
一.前言
零基礎(chǔ) Python 學習路線推薦 : Python 學習目錄 >> Python 基礎(chǔ)入門
在 Python 開發(fā)中,變量也是有生命周期的,一旦周期結(jié)束,程序會自動清理暫用的空間,釋放內(nèi)存,變量分為兩者,一種是局部變量,一種是全局變量,兩者具體有什么區(qū)別呢……
二.Python 局部變量
一般而言在函數(shù)內(nèi)部或者類中聲明的變量默認都是局部變量。一旦函數(shù)結(jié)束,變量的生命周期也會結(jié)束,占用的空間會被自動釋放。
def func1():# 在函數(shù)內(nèi)部定義的變量默認都是局部變量a = 1print(a)# 函數(shù)結(jié)束,局部變量a的生命周期結(jié)束# 由于a是局部變量,并且a的生命周期已經(jīng)結(jié)束,外部再次調(diào)用局部變量a,程序會產(chǎn)生異常,崩潰 print(a)程序報錯:NameError: name ‘a(chǎn)’ is not defined ,原因:函數(shù)內(nèi)部定義的局部變量只能在函數(shù)內(nèi)部使用。
三.Python 全局變量
全局變量和局部變量相反,在函數(shù)外部或者類外部聲明的變量默認為全局變量。全局變量的生命周期直到程序結(jié)束才會結(jié)束,比局部變量生命周期更長。
# !usr/bin/env python # !usr/bin/env python # -*- coding:utf-8 _*- """ @Author:猿說編程 @Blog(個人博客地址): www.codersrc.com @File:python局部變量和全局變量.py @Time:2021/3/24 00:37 @Motto:不積跬步無以至千里,不積小流無以成江海,程序人生的精彩需要堅持不懈地積累!"""a = 2 def func1():print(a)# 函數(shù)結(jié)束,局部變量的生命周期結(jié)束# 全局變量直到程序結(jié)束,生命周期才結(jié)束func1() # 輸出全局變量a print(a)''' 輸出結(jié)果: 2 2'''四.Python 局部變量和全局變量的區(qū)別
1.全局變量的生命周期是直到程序結(jié)束,而局部變量生命周期是函數(shù)結(jié)束;
2.如果需要在函數(shù)內(nèi)部修改全局變量的值,需要在函數(shù)內(nèi)部為該全局變量前面加上 global 關(guān)鍵字, 否則該變量默認為函數(shù)內(nèi)部定義的局部變量,示例代碼如下:
# !usr/bin/env python # !usr/bin/env python # -*- coding:utf-8 _*- """ @Author:猿說編程 @Blog(個人博客地址): www.codersrc.com @File:python局部變量和全局變量.py @Time:2021/3/24 00:37 @Motto:不積跬步無以至千里,不積小流無以成江海,程序人生的精彩需要堅持不懈地積累!"""# 在函數(shù)內(nèi)部定義的變量默認都是局部變量 a = 2 def func1():# global a # 聲明 a 是全局變量,在該函數(shù)內(nèi)部對a的操作就是對全局變量a的操作a = 1 # 如果沒有上一行代碼,默認a就是函數(shù)內(nèi)部的局部變量,函數(shù)結(jié)束,生命周期結(jié)束print(a)# 函數(shù)結(jié)束,局部變量的生命周期結(jié)束func1() # 輸出全局變量a print(a)''' 輸出結(jié)果: 1 2'''是不上覺得很奇怪:為什么最后一個值是 2 ,應該是 1 才對?
因為沒有第 17 行代碼的話,默認 a 只是函數(shù)內(nèi)部的一個普通局部變量,所以函數(shù)內(nèi)部的 print 函數(shù)輸出到控制臺是 1 ;函數(shù)結(jié)束,函數(shù)內(nèi)部的局部變量 a 值生命周期結(jié)束,執(zhí)行 fun1 函數(shù)之后的 print 函數(shù)輸出的是全局變量 a 的值 2 .
也就是說函數(shù)內(nèi)部對 a 值得修改并沒有成功,只有在函數(shù)內(nèi)部,為全局變量加上關(guān)鍵字 global 聲明為全局變量,才能修改成功,取消第 17 行得注釋,控制臺輸出:
1 1五.重點總結(jié)
- 1.注意局部變量和全局變量的生命周期;
- 2.如果想在函數(shù)內(nèi)部修改全局變量的值,需要加上關(guān)鍵字 global ;
六.猜你喜歡
未經(jīng)允許不得轉(zhuǎn)載:猿說編程 ? Python 局部變量和全局變量
總結(jié)
以上是生活随笔為你收集整理的Python 局部变量和全局变量 - Python零基础入门教程的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: jq之fadeTo
- 下一篇: Python divmod 函数 - P