首頁 後端開發 Python教學 Python中的全域變數和局部變數的差異(程式碼詳解)

Python中的全域變數和局部變數的差異(程式碼詳解)

Mar 16, 2019 pm 02:16 PM
python 全域變數 局部變數

Python中的全域變數和局部變數的差異(程式碼詳解)

全域變數是在函數外部定義和宣告的變量,我們需要在函數內部使用它們。

#这个函数使用全局变量s
def f():  
    print s  
  
# 全局作用域
s = "I love Python"
f()
登入後複製

輸出:

I love Python
登入後複製

如果在函數範圍內定義了具有相同名稱的變量,那麼它將只列印函數內給出的值而不是全域值。

# 这个函数有一个与s同名的变量。
def f():  
    s = "Me too."
    print s  
  
# 全局作用域
s = "I love Python" 
f() 
print s
登入後複製

輸出:

Me too
I love Python
登入後複製

在我們呼叫函數f()之前,變數s被定義為字串「I love Python」。 f()中唯一的語句是「print s」語句。由於沒有本地s,將使用全域s的值。

問題是,如果我們改變函數f()內部的s值會發生什麼事?它會影響全域嗎?

我們在下面的程式碼中測試它:

def f():  
    print s 
  
    # 如果我们在下面评论,这个程序不会显示错误。
    s = "Me too."
  
    print s 
  
#全局作用域
s = "I love Python" 
f() 
print s
登入後複製

#輸出:

Line 2: undefined: Error: local variable 's' referenced before assignment
登入後複製

為了讓上述程式有效,我們需要使用「global」關鍵字。如果我們想要進行分配/更改它們,我們只需要在函數中使用全域關鍵字。列印和存取不需要全域。

Python「假設」我們想要一個局部變量,因為f()內部的賦值,所以第一個print語句拋出此錯誤訊息。在函數內部更改或創建的任何變數都是本地的,如果它尚未聲明為全域變數。要告訴Python,我們要使用全域變量,我們必須使用關鍵字「global」

如以下範例所示:

# 这个函数修改全局变量's' 
def f(): 
    global s 
    print s 
    s = "Look for Python"
    print s  
  
#全局作用域
s = "Python is great!" 
f() 
print s
登入後複製

輸出:

Python is great!
Look for Python.
Look for Python.
登入後複製

一個很好的範例:

a = 1
  
# 使用global,因为没有本地'a' 
def f(): 
    print 'Inside f() : ', a 
  
#变量“a”被重新定义为局部变量
def g():     
    a = 2
    print 'Inside g() : ',a 
  
#使用全局关键字修改全局'a'
def h():     
    global a 
    a = 3
    print 'Inside h() : ',a 
  
# 全局作用域
print 'global : ',a 
f() 
print 'global : ',a 
g() 
print 'global : ',a 
h() 
print 'global : ',a
登入後複製

輸出:

global :  1
Inside f() :  1
global :  1
Inside g() :  2
global :  1
Inside h() :  3
global :  3
登入後複製

相關推薦:《Python教學

##

以上是Python中的全域變數和局部變數的差異(程式碼詳解)的詳細內容。更多資訊請關注PHP中文網其他相關文章!

本網站聲明
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn

熱門文章

R.E.P.O.能量晶體解釋及其做什麼(黃色晶體)
2 週前 By 尊渡假赌尊渡假赌尊渡假赌
倉庫:如何復興隊友
4 週前 By 尊渡假赌尊渡假赌尊渡假赌
Hello Kitty Island冒險:如何獲得巨型種子
3 週前 By 尊渡假赌尊渡假赌尊渡假赌

熱門文章

R.E.P.O.能量晶體解釋及其做什麼(黃色晶體)
2 週前 By 尊渡假赌尊渡假赌尊渡假赌
倉庫:如何復興隊友
4 週前 By 尊渡假赌尊渡假赌尊渡假赌
Hello Kitty Island冒險:如何獲得巨型種子
3 週前 By 尊渡假赌尊渡假赌尊渡假赌

熱門文章標籤

記事本++7.3.1

記事本++7.3.1

好用且免費的程式碼編輯器

SublimeText3漢化版

SublimeText3漢化版

中文版,非常好用

禪工作室 13.0.1

禪工作室 13.0.1

強大的PHP整合開發環境

Dreamweaver CS6

Dreamweaver CS6

視覺化網頁開發工具

SublimeText3 Mac版

SublimeText3 Mac版

神級程式碼編輯軟體(SublimeText3)

模板化的優點和缺點有哪些? 模板化的優點和缺點有哪些? May 08, 2024 pm 03:51 PM

模板化的優點和缺點有哪些?

Google AI 為開發者發佈 Gemini 1.5 Pro 和 Gemma 2 Google AI 為開發者發佈 Gemini 1.5 Pro 和 Gemma 2 Jul 01, 2024 am 07:22 AM

Google AI 為開發者發佈 Gemini 1.5 Pro 和 Gemma 2

怎麼下載deepseek 小米 怎麼下載deepseek 小米 Feb 19, 2025 pm 05:27 PM

怎麼下載deepseek 小米

只要250美元,Hugging Face技術主管手把手教你微調Llama 3 只要250美元,Hugging Face技術主管手把手教你微調Llama 3 May 06, 2024 pm 03:52 PM

只要250美元,Hugging Face技術主管手把手教你微調Llama 3

分享幾個.NET開源的AI和LLM相關專案框架 分享幾個.NET開源的AI和LLM相關專案框架 May 06, 2024 pm 04:43 PM

分享幾個.NET開源的AI和LLM相關專案框架

golang 函數調試與分析的完整指南 golang 函數調試與分析的完整指南 May 06, 2024 pm 02:00 PM

golang 函數調試與分析的完整指南

deepseek怎麼問他 deepseek怎麼問他 Feb 19, 2025 pm 04:42 PM

deepseek怎麼問他

evaluate函數怎麼保存 evaluate函數怎麼保存 May 07, 2024 am 01:09 AM

evaluate函數怎麼保存

See all articles