ローカル変数


pythonとrubyの変数の違い

rubyでは、グローバル変数は使わないのが原則らしい。通常の変数はすべてローカルになる。例えば、

a=1
def f(b)
  return a+b
end
print f(1)

とすると、aはf()の中では宣言されていないので、エラーが出る。しかし、pythonでは取扱いが違うらしい。

a=1
def f(b):
  return a+b
print f(1)

とすると、2を表示する。つまり、aはグローバル変数として取り扱われて、f()の中でも有効なのである。このどちらの方が便利なのか、意見が分かれるとは思う。