程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
您现在的位置: 程式師世界 >> 編程語言 >  >> 更多編程語言 >> Python

Python: 在函數中使用全局變量

編輯:Python

Python: 在函數中使用全局變量

  • 前言
  • python全局變量
  • 函數中使用全局變量
    • 讀取
    • 修改
    • 局部作用域

前言

本篇記錄一個python問題,在函數中使用全局變量

python全局變量

與C++相仿,python也有全局變量,並且在函數外定義的變量就是全局變量:

a = 5 # 全局變量
def func():
return

函數中使用全局變量

讀取

在函數中可以直接讀取全局變量的值:

a = 5 # 全局變量
print(id(a))
def func():
print(a)
print(id(a))
''' 94648897326528 5 94648897326528 '''

修改

在函數中不能直接修改全局變量的值,如下所示:

a = 5 # 全局變量
def func():
a=a+1
func()

將報UnboundLocalError: local variable 'a' referenced before assignment,也就是說func函數認為a是一個局部變量,但沒有被賦值。

正確做法是在函數中使用global關鍵字提示編譯器a是一個已定義的全局變量:

a = 5 # 全局變量
def func():
global a
a=a+1 # 6
func()
print(a)
''' 6 '''

可以看到,全局變量a被函數修改了。

局部作用域

與C++類似,可以在函數的局部作用域下,定義與全局變量同名的局部變量:

a = 5 # 全局變量
def func():
a=5
a=a+1 # 6
print(a)
func()
print(a)
''' 6 5 '''

局部變量被改變不會影響同名全局變量的值(因為它們的地址不同。)


  1. 上一篇文章:
  2. 下一篇文章:
Copyright © 程式師世界 All Rights Reserved