目錄
- 一.前言
- 二.Python 區域變數
- 三.Python 全域變數
- 四.Python 區域變數和全域變數的區別
- 五.重點總結
- 六.猜你喜歡
一.前言
零基礎 Python 學習路線推薦 : Python 學習目錄 >> Python 基礎入門
在 Python 開發中,變數也是有生命周期的,一旦周期結束,程式會自動清理暫用的空間,釋放記憶體,變數分為兩者,一種是區域變數,一種是全域變數,兩者具體有什么區別呢……

二.Python 區域變數
一般而言在函式內部或者類中宣告的變數默認都是區域變數,一旦函式結束,變數的生命周期也會結束,占用的空間會被自動釋放,
def func1():
# 在函式內部定義的變數默認都是區域變數
a = 1
print(a)
# 函式結束,區域變數a的生命周期結束
# 由于a是區域變數,并且a的生命周期已經結束,外部再次呼叫區域變數a,程式會產生例外,崩潰
print(a)
程式報錯:NameError: name ‘a’ is not defined ,原因:函式內部定義的區域變數只能在函式內部使用,
三.Python 全域變數
全域變數和區域變數相反,在函式外部或者類外部宣告的變數默認為全域變數,全域變數的生命周期直到程式結束才會結束,比區域變數生命周期更長,
# !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)
# 函式結束,區域變數的生命周期結束
# 全域變數直到程式結束,生命周期才結束
func1()
# 輸出全域變數a
print(a)
'''
輸出結果:
2
2
'''
四.Python 區域變數和全域變數的區別
1.全域變數的生命周期是直到程式結束,而區域變數生命周期是函式結束;
2.如果需要在函式內部修改全域變數的值,需要在函式內部為該全域變數前面加上 global 關鍵字, 否則該變數默認為函式內部定義的區域變數,示例代碼如下:
# !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():
# global a # 宣告 a 是全域變數,在該函式內部對a的操作就是對全域變數a的操作
a = 1 # 如果沒有上一行代碼,默認a就是函式內部的區域變數,函式結束,生命周期結束
print(a)
# 函式結束,區域變數的生命周期結束
func1()
# 輸出全域變數a
print(a)
'''
輸出結果:
1
2
'''
是不上覺得很奇怪:為什么最后一個值是 2 ,應該是 1 才對?
因為沒有第 17 行代碼的話,默認 a 只是函式內部的一個普通區域變數,所以函式內部的 print 函式輸出到控制臺是 1 ;函式結束,函式內部的區域變數 a 值生命周期結束,執行 fun1 函式之后的 print 函式輸出的是全域變數 a 的值 2 .
也就是說函式內部對 a 值得修改并沒有成功,只有在函式內部,為全域變數加上關鍵字 global 宣告為全域變數,才能修改成功,取消第 17 行得注釋,控制臺輸出:
1
1
五.重點總結
- 1.注意區域變數和全域變數的生命周期;
- 2.如果想在函式內部修改全域變數的值,需要加上關鍵字 global ;
六.猜你喜歡
- Python 簡介
- Python Pycharm Anacanda 區別
- Python2.x 和 Python3.x,如何選擇?
- Python 配置環境
- Python Hello World 入門
- Python 代碼注釋
- Python 中文編碼
- Anaconda 是什么?Anconda 下載安裝教程
- Pycharm 提示:this license **** has been cancelled
- Pycharm 設定開發模板/字體大小/背景顏色
- Python 串列 list
- Python 元組 tuple
- Python 字典 dict
未經允許不得轉載:猿說編程 ? Python 區域變數和全域變數
本文由博客 - 猿說編程 猿說編程 發布!
轉載請註明出處,本文鏈接:https://www.uj5u.com/houduan/287996.html
標籤:其他
上一篇:MyBatis攔截器
