同事,問起我為什麼class 下的變數在外部也可以呼叫,我一時摸不著頭腦,只能用最口語化的方式解釋。但是看上去他並不是很理解。發現我自己也沒有認真研讀python 的作用域,只是知道它就該這麼用,一副should be so 的樣子。好吧,讓我們揭開他的面紗。
python 中沒有塊級作用域
for
i in range(5)
print i
pirnt i*i
程式可以正常執行,變數i雖然是for迴圈內部的,但是因為不存在塊級作用域,所以最後print i * i 依然可以執行。
相信這點對大部分的人不難理解。
定義在全域性作用域的變數稱為全域性變數,除非全域性變數被刪除掉,否則他會存活一直到指令碼執行結束。指令碼內部所有的函式都可以使用他們。
定義在區域性作用域(通常是函式,類)的變數稱為區域性變數,暫時的存在,只依賴於定義他們的函式或者類現階段是否處於活動。當乙個函式呼叫出現時,其區域性變數就進入宣告他們的作用域。
def
test
(): i=123
print i
print i
執行會報錯,因為變數i在區域性作用域中,所以在全域性中呼叫會錯誤。
test
()print
i
那我們先呼叫該函式試試呢,還是會報錯,就像我們說的。
當函式執行結束時,其中宣告的變數也就失效了。
BCP簡要說明
bcp是sybase公司提供專門用於資料庫表一級資料備份的工具。一般存放在所安裝的ase或者open client 的bin目錄中。12版本以前的ase,bcp存放目錄為 sybase bin 12版本 含12版本 以後存放目錄為 sybase ocs 12 x bin 其中 sybase為syba...
initcall debug簡要說明
linux version 3.10.40 1.使用說明 documentation kernel parameters.txt中的說明如下 initcall debug knl trace initcalls as they are executed.useful for working out ...
ramoops pstore簡要說明
1.pstore pstore是persistent storage的縮寫。核心發生異常時如果能將日誌等資訊儲存下來不丟失,那麼就可以通過這些資訊來定位問題。不同的平台可以提供的儲存位置不同,例如有些平台支援硬碟,有些不支援。除了平台差異,異常型別也決定了在發生異常時該儲存位置是否還可用。pstor...