Python千萬要注意的全域性變數和區域性變數問題
1、直接在函式中呼叫全域性變數
m = 100
def fun():
print("m1:",m)
fun()
print("m2:", m)
輸出:
2、函式體內呼叫與全域性變數同名的區域性變數
m = 100
def fun():
m = 50
print("m1:",m)
fun()
print("m2:", m)
輸出:
解釋:在函式體內,定義了一個區域性變數,這個區域性變數覆蓋住了全域性變數。
3、一種經典報錯
m = 100 def fun(): print("m0:",m) m = 50 print("m1:",m) fun() print("m2:", m)
輸出:
解釋:因為在函式體內定義了這個區域性變數,但是定義卻在呼叫之後,所以報錯!
4、針對問題3的修改方法
m = 100
def fun():
global m
print("m0:", m)
m = 50
print("m1:",m)
fun()
print("m2:", m)
輸出:
相關推薦
Python千萬要注意的全域性變數和區域性變數問題
1、直接在函式中呼叫全域性變數 m = 100 def fun(): print("m1:",m) fun() print("m2:", m) 輸出: 2、函式體內呼叫與全域性變數同名的區域性變數 m = 100 def fun(): m = 50
python--全域性變數和區域性變數
區域性變數: 是在函式內部定義的變數,只能在函式內部使用 函式執行結束後,函式的區域性變數,會被系統回收 作用:在函式內部使用,臨時儲存函式內部需要使用的資料 全域性變數: 是在函式外部定義的變數(沒有定義某一個函式內,所有函式都
關於python的全域性變數和區域性變數
全域性變數: 定義在函式外部,作用域是整個程式碼段,儲存在記憶體中。 區域性變數: 定義在函式內部,作用域僅在函式內部,儲存在棧中,當函式完成功能,區域性變數會自動丟失。 如果在函式內試圖是修改全域性變數,python會自動建立一個區域性變數替代,名字和全域性變數相同。 下面摘抄小甲魚老
Python變數學習-認識全域性變數和區域性變數
學習Python的過程中少不了用到變數,在日常的編寫程式的過程中,每時每刻都在使用變數, 問:什麼是變數 答:變數是可以改變的數,通常沒有固定的值 問:有幾種變數 答:變數分為2種形式,即:全域性變數和區域性變數 名詞解釋: 全域性變數:顧名思義全域性變數,作用
python全域性變數和區域性變數
在函式內部定義的變數叫區域性變數,在函式外定義的變數叫全域性變數 如果全域性變數和區域性變數名稱相同,則在函式內部用的是區域性變數的值,就像就近原則一樣;在函式體外,用的還是全域性變數 a = 10 d
python 第二十四篇 全域性變數和區域性變數的作用域
#變數的作用域:是指一個變數所產生的作用範圍,也就是說在哪一個範圍內變數能夠被直譯器所識別。 #變數分為:全域性變數 和 區域性變數 #全域性變數:一般宣告在函式的外部。 #全域性變數的作用域:整個.py檔案內都可以使用,都可以被識別。 #區域性變數:一般宣告在函式的
Python中的全域性變數和區域性變數
當局部變數和全域性變數名字一樣時,依然是不同的變數,但是值一樣時,地址依然一樣。值不一樣時,地址不一樣,修改區域性變數,全域性變數的值依然不變,例如: num = 100 def test(): num = 99 print("區域性變數num
python基礎:函式名稱空間、作用域、全域性變數和區域性變數
一、名稱空間: Python的名稱空間的本質是一個字典,用來記錄變數名稱和值。字典的key是變數的名稱,字典的value對於的是變數的值。 例如 {‘name’:’zs’,’age’:10} 名稱空間一共分為三種:區域性名稱空間、全域性名稱空間、內建名稱空間 區域性名稱空間: 每個函式都有自
python 類中變數 和區域性變數和全域性變數
1.類中初始化變數 class dig(): def __init__(self,x,y): self.x=x self.y=y def pd(self
python中的全域性變數和區域性變數以及可變資料型別
全域性變數和區域性變數 一、區域性變數:在函式內部定義的變數,叫區域性變數 當這個函式被呼叫的時候,這個變數存在,當這個函式執行完成之後,因為函式都已經結束了,所有函式裡面定義的變數也就結束了 在一個函式中定義的區域性變數,只能在這個函式中使用,不能再其他
JavaScript全域性變數和區域性變數的使用注意點
<script type="text/javascript"> var abc=774;//全域性變數 function test(){abc=22;//變數abc如果沒有帶
python中有關函式的全域性變數和區域性變數
例一: a = 9 def b(): print(a) 結果打印出來是:9 a 是定義在函式外部的全域性變數,在函式內部可以使用。 例二: a = 4 def b(): a =
淺談python中的全域性變數和區域性變數~
在被呼叫函式內賦值的變元和變數,處於該函式的“區域性作用域”。在所有函式之外賦值的變數,屬於“全域性作用域”。處於區域性作用域的變數,被稱為“區域性變數”。處於全域性作用域的變數,被稱為“全域性變數”。一個變數必是其中一種,不能既是區域性的又是全域性的。 可以
Python3 全域性變數和區域性變數的使用
name='lhf' def change_name(): print('我的名字',name) change_name() def change_name(): name='帥了一筆' print('我的名字',name) change_name() print(name) d
JS 變數和函式提升 全域性變數和區域性變數
1. var a = 10; function test() { a = 100; console.log(a); console.log(this.a); var a; console.log(a); } test();//100 10 100 =&
C/C++ 全域性變數和區域性變數在記憶體裡的區別?堆和棧
一、預備知識—程式的記憶體分配 一個由c/C++編譯的程式佔用的記憶體分為以下幾個部分 1、棧區(stack)— 由編譯器自動分配釋放 ,存放函式的引數值,區域性變數的值等。其操作方式類似於資料結構中的棧,如果還不清楚,那麼就把它想成陣列,它的記憶體分
keil除錯過程檢視全域性變數和區域性變數的方法及編譯器優化
keil除錯過程檢視全域性變數和區域性變數的方法及編譯器優化 一、檢視全域性變數的方法:Watch Window The Watch window allows to evaluate symbols, registers, and expressions. The window
js全域性變數和區域性變數以及變數宣告提升
區域性變數和全域性變數重名時: 一、Javascript的變數的scope是根據方法塊來劃分的(也就是說以function的一對大括號{ }來劃分)。切記,是function塊,而for、while、if塊並不是作用域的劃分標準。 二、 當全域性變數跟區域性變數重名時,區域性變數的scope
JS中最經典的全域性變數和區域性變數問題(1、作用域和作用域鏈 2、變數宣告提前)
var a = 10; function test(){ a = 100; console.log(a); console.log(this.a); var a; console.log(a); } test(); 1、程式的執行結果為:100
java全域性變數和區域性變數
全域性變數是一個執行時刻實體,它在程式的整個執行過程中都存在。全域性變數生命週期為程式開始到程式結束。 全域性變數顯示初始化時,或者未初始化時,在程式映像中有不同的分割槽:已初始化的全域性變數是可執行模組的一部分。未初始化的全域性變數則不是可執行模組的一部分,只有當定義它們的程式被呼叫時