1. 程式人生 > 其它 >Python 區域性變數和全域性變數 - 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 ;

六.猜你喜歡

  1. Python 簡介
  2. Python Pycharm Anacanda 區別
  3. Python2.x 和 Python3.x,如何選擇?
  4. Python 配置環境
  5. Python Hello World 入門
  6. Python 程式碼註釋
  7. Python 中文編碼
  8. Anaconda 是什麼?Anconda 下載安裝教程
  9. Pycharm 提示:this license **** has been cancelled
  10. Pycharm 設定開發模板/字型大小/背景顏色
  11. Python 列表 list
  12. Python 元組 tuple
  13. Python 字典 dict

未經允許不得轉載:猿說程式設計 » Python 區域性變數和全域性變數

本文由部落格 - 猿說程式設計 猿說程式設計 釋出!