您的位置:首页 > 编程语言 > Ruby

python和ruby变量作用域对比

2013-07-26 15:00 316 查看
python:

a = 0
def f():
a = 9
print a

f()
print a


打印出来是9和0

a = 0
def f():
print a

f()
print a


打印出来是0和0

python调用f函数,执行print a的时候,会先在函数的作用域里查找是否有a这个变量,没有找到再到全局的作用域查找a这个变量。

ruby:

a = 0
def f()
a = 9
puts a
end
f()
puts a


打印出来是9和0

a = 0
def f()
puts a
end
f()
puts a


会报错

undefined local variable or method `a' for main:Object(NameError)

ruby解释器是逐行执行代码,遇到module,class和定义函数的地方会改变作用域,代码只能访问本作用域下面的变量。

详细介绍看 /content/2929154.html
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: