Python中的全域性變數和區域性變數
區域性變數與全域性變數名一樣時
當區域性變數和全域性變數名字一樣時,依然是不同的變數,但是值一樣時,地址依然一樣,類似於兩個不同的指標指向同一個地址。值不一樣時,地址不一樣,修改區域性變數,全域性變數的值依然不變,例如:
num = 100
def test():
num = 99
print("區域性變數num的值:%d,地址為:%d" % (num, id(num)))
test()
print("全域性變數num的值:%d,地址為:%d" % (num, id(num)))
輸出:
區域性變數num的值:99,地址為:492861520
全域性變數num的值:100,地址為:492861552
Python中,當全域性變數和區域性變數的名字一樣時,函式內會優先使用區域性變數的值,函式內也沒辦法通過賦值直接修改全域性變數的值。
如果要在區域性修改全域性變數的值時
修改成如下程式碼:
num = 100
def test():
global num #告訴直譯器num是全域性變數
num = 99
print("區域性變數num的值:%d,地址為:%d" % (num, id(num)))
test()
print("全域性變數num的值:%d,地址為:%d" % (num, id(num)))
輸出:
區域性變數num的值:99,地址為:492861520
全域性變數num的值:99,地址為:492861520
針對函式引數使用賦值語句,會在函式內部修改區域性變數的引用,不會影響到外部變數的引用
def demo(num, num_list):
print("函式內部")
# 賦值語句
num = 200
num_list = [1, 2, 3]
print(num)
print(num_list)
gl_num = 99
gl_list = [4, 5, 6]
demo(gl_num, gl_list)
print("函式外部")
print(gl_num)
print(gl_list)
輸出:
函式內部
200
[1, 2, 3]
函式外部
99
[4, 5, 6]
如果傳遞引數是可變型別,在函式內部,使用方法修改了資料的內容,同樣會影響到外部的資料
def demo(num_list):
print("函式內部")
# 使用方法修改內部的程式碼
num_list.append(9)
print(num_list)
gl_list = [1, 2, 3]
demo(gl_list)
print("函式外部")
print(gl_list)
輸出:
函式內部
[1, 2, 3, 9]
函式外部
[1, 2, 3, 9]
相關文章
- 區域性變數和全域性變數變數
- python全域性變數和區域性變數, globalPython變數
- javascript中的作用域(全域性變數和區域性變數)JavaScript變數
- java 全域性變數和區域性變數Java變數
- JavaScript —— 區域性變數和全域性變數JavaScript變數
- jmeter全域性變數和區域性變數JMeter變數
- python全域性變數與區域性變數Python變數
- Python的全域性和區域性變數Python變數
- Python的區域性變數和全域性變數使用解惑Python變數
- 全域性變數與區域性變數變數
- C語言區域性變數、全域性變數、靜態區域性變數、靜態全域性變數C語言變數
- js-js的全域性變數和區域性變數JS變數
- Java區域性變數與全域性變數Java變數
- 【c】全域性變數與區域性變數變數
- Python全域性變數與區域性變數詳解Python變數
- 詳解python 區域性變數與全域性變數Python變數
- JavaScript五:全域性變數&區域性變數;運算子JavaScript變數
- 成員變數、全域性變數、例項變數、類變數、靜態變數和區域性變數的區別變數
- 區域性變數和全域性變數(靜態和非靜態)區別變數
- Android中全域性變數與區域性變數的使用總結Android變數
- iOS 靜變數static、全域性變數extern、區域性變數、例項變數iOS變數
- 靜態全域性變數和全域性變數變數
- 記一個全域性變數"冒充"區域性變數引起的bug變數
- [Python學習] 專題六.區域性變數、全域性變數global、匯入模組變數Python變數
- Python中類變數、成員變數、區域性變數的區別Python變數
- 全域性變數和靜態變數的區別變數
- 成員變數和區域性變數變數
- 成員變數和區域性變數的區別變數
- angular中定義全域性變數及全域性變數的使用Angular變數
- 多執行緒中,區域性變數與全域性變數哪個比較安全?執行緒變數
- python全域性變數Python變數
- node 全域性物件和全域性變數物件變數
- 程式程式碼,常量,區域性變數,全域性變數在記憶體中的儲存位置變數記憶體
- 十二、變數作用域:區域性變數、全域性變數,函式版名片管理系統—新增函式文件變數函式
- 全域性變數變數
- 函式之定義及全域性變數&區域性變數&風溼理論函式變數
- golang變數作用域問題-避免使用全域性變數Golang變數
- SQL Server中的全域性變數SQLServer變數