python:
1 a =02def
f():
3 a = 9
4print a56
f()7 print a
列印出來是9和0
a =0deff():
af()
print a
列印出來是0和0
python呼叫f函式,執行print a的時候,會先在函式的作用域裡查詢是否有a這個變數,沒有找到再到全域性的作用域查詢a這個變數。
ruby:
1 a =02def
f()3 a = 9
4puts a
5end
6f()
7 puts a
列印出來是9和0
1 a =02def
f()3
puts a
4end
5f()
6 puts a
會報錯undefined local variable or method `a' for main:object(nameerror)
ruby直譯器是逐行執行**,遇到module,class和定義函式的地方會改變作用域,**只能訪問本作用域下面的變數。
詳細介紹看
Ruby 標識名和變數作用域
ruby 的標識名用來指向常量,變數,方法,類和模組。標識名的首字母用來幫助我們確定標識所指向內容的作用域。ruby 的標識名區分大小寫。ruby 使用乙個約定的來幫助它區別乙個名字的用法 a 名字前面的第乙個字元表明這個名字的用法。b 區域性變數 方法引數和方法名稱應該用乙個小寫字母開頭或者用乙個...
python 變數宣告和作用域
a 3 1.建立name a 2.建立object 3 3.將name 關聯到3 這個object上 name在建立時必須關聯到乙個object name可以在建立以後指向任何乙個object 包括不同型別 全域性變數和區域性變數 1.globals 返回當前模組的全域性變數,locals返回當前所...
Python變數前 和 的作用
在python的在形參前加 和 表示動態形參 在形參前加 表示可以接受多個實參值存進陣列 def f a,b print a print b f 1,2,3 1 2,3 對於在形參前加 表示表示接受引數轉化為字典型別 def f a print a f x 1,y 2 混合運用 def f a,b,...