大っ嫌い!今、話題の人工知能(AI)などで人気のPython。2018/09/05初回:2018/09/050.今回のまとめPythonのスコープは、複雑怪奇で,曖昧です。ルールを決めてパターン化しておかないと、面倒なことになります。私にとって、Pythonの一番嫌いなところは、変数宣言とスコープです。「Pythonは変数のスコープが曖昧な事を忘れない」という記事を一度読んでみてください。(※1)では、そのプログラムを少し書き換えてみましょう。Varibale「ちょっと待ってよ。違いは、1と2の順番だけです。Test2.pyの場合は、global_varというローカル変数を定義して、その値をlocal_varいうローカル変数にセットしているので、global_varというグローバル変数は、書き換えていません。Test3.pyは、local_varいうローカル変数にglobal_varというグローバル変数をセットした後、global_varというグローバル変数を書き換えようとして、エラーになっています。ややこしいのは、関数の引数の初期化問題です。'value'}グローバルでもなく、ローカルでもなく、関数グローバルとでも言えましょうか。(※4)先ほどの様に、エラーになってくれればまだ、まだましです。気づかずに、後になって、何か変だと感じた頃には、手遅れだった、ということも多々あるため、気を付ける必要があります。foo関数のmydictが初期化されます。foo("B",{})は、単に空の辞書を引数として、処理されています。foo("C")は、関数定義時に初期化されたmydictが再利用されています。Pythonの変数スコープの話まずは、以下のお話を読んでみてください。関数グローバルそんな言葉はありません。デフォルト値は、関数が定義されたときに一度だけ生成されます。それは、関数ごとに異なっているのですが、関数の中だけで、生き続けています。都度、使い捨てになるはずなので、特にマルチタスク等では注意が必要でしょう。名前を記憶しておくコメント:ちゃとらんオープンソースのWeアプリケーションフレームワーク(openGion)を主催しています。あなたはどこ見ていますか?書籍「誰でも身につく!暗算力」を読んでみた。未成年者略取ムチャか?男気か?部下も立て続けに。利用規約ITmediaはアイティメディア株式会社の登録商標です。