変数のスコープ/グローバル変数とローカル変数

スポンサーリンク
スポンサーリンク
ライフスタイル関連のコンテンツ
お金 | 仕事 | 勉強 | プライベート | 健康 |
プログラミング関連のコンテンツ
C言語/C++入門 | Ruby入門 | Python入門 | プログラミング全般

Pythonの変数スコープ

Pythonの場合も、他の多くの言語と同様に、関数に引数として渡される変数は、ローカル変数として、関数内のみのローカルスコープに限り有効です。

スポンサーリンク

この実験のために、次のようなコードを書いてみます。

def scope_python(n):
    n *= 2
    return n
n = 5
print scope_python(n)
print n

定義した関数、scope_python(n)には、引数としてnが渡されます。
関数内で、nの値を2倍してreturnしていますが、関数の外側(グローバルスコープ)では、nの値は変更されません。
上記スクリプトの実行結果。

10
5

PHPやJavaScriptでも同様です。
同じ処理の関数を定義して、実験してみます。

PHPの変数スコープ

<?php
function scope_php($n) {
    $n *= 2;
    return $n;
}
$n = 5;
echo scope_php($n) . "<br>";
echo $n;
?>

実行結果。

";
echo $n;
?>

JavaScriptの変数スコープ

<script tyep="text/javascript">
function scope_js(n) {
    n *= 2;
    return n;
}
n = 5;
document.write(scope_js(n) + "<br>");
document.write(n);
</script>

PHP、JavaScriptのいずれの場合でも、関数内で変数の値が変更されたとしても、関数の外側(グローバルスコープ)の変数の値は変更されていません。

スポンサーリンク
 
スポンサーリンク