Python中局部變量與全局變量的解釋


num = 5

def  func():

    num += 1

    print(num)

fun()

print(num)

輸出:UnboundLocalError: local variable 'num' referenced before assignment

翻譯:局部變量錯誤:變量 “num” 未被定義就被應用了。由此再次證明了這里定義了一個局部變量,而不是使用的全局的 “num”

總結:當已經在函數體外的變量已經被定義為全局變量后,在函數體內又被重新賦值一遍,這時的變量在函數體內又被定義為局部變量,只在函數體內才會有效。在函數體外的時候恢復之前未在函數體內定義的狀態。

 

def func():

    num = 10

    print(num)

func()

print(num)

輸出:NameError: name 'num' is not defined

名稱錯誤:變量num沒有被定義

說明這里num被定義成了一個局部變量,只能在函數體內有效。

 

num = 100

def func()

    x = num +100

    print(x)

輸出:200

說明這里的num是作全局變量使用的

總結:自己看程序

 

如果想在函數體內定義一個全局變量,可以用globa來定義,如下:

num = 100

def func():

  global num

  num = 200

  print(num)

func()

print(num)

輸出:200

輸出:200

說明這里的num是作全局變量使用的。

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM