Python: def 函式中的變數空間
Python 有一個和其他語言不同的地方,這個奇異點有點奇怪。當然,這一定是我不懂這麼作有什麼好處的關係。
當我們宣告一個函式如下:
def func():
print X
這個 X 變數的值,會從 func 函式中找尋區域變數定義,找不到就往整個程式的全域變數來作套用,再找不到,就會去找整個 python 直譯器所擁用的內建變數搜尋,再找不到,就會丟出一個 NameError 的例外訊息。
Python 有一個和其他語言不同的地方,這個奇異點有點奇怪。當然,這一定是我不懂這麼作有什麼好處的關係。
當我們宣告一個函式如下:
def func():
print X
這個 X 變數的值,會從 func 函式中找尋區域變數定義,找不到就往整個程式的全域變數來作套用,再找不到,就會去找整個 python 直譯器所擁用的內建變數搜尋,再找不到,就會丟出一個 NameError 的例外訊息。
lambda是用來定義一個小小函式用的,與一般使用的 def 有些許不同, Lisp 語言也有這個功能。因為這個 lambda 函式,讓 Python 語言可以更靈活地使用。
很多語言在函式傳遞的部份,都是用記憶體位址來作傳遞,具有不同習性語言的,我只知道有 Perl 及 Linux shell script 而已。 Python 也是用記憶體位址來傳遞引數的。
我很習慣用Vim來作任何有關文字編輯的工作,包含改設定檔、寫程式、寫網頁,甚至是大量改檔名的時候,我也是先用 Vim 編輯要打的指令之後才送 shell 處理。 Vim 真的是文字編輯領域的佼佼者。
Dear friends: Any suggestion is welcome, thank you for the costful idea.
朋友: 如有任何意見可填寫在這裡。感謝您的寶貴想法。