関数の理解を深めるために､ スコープについて説明します｡
もうひとつのキーワード｡
スコープとは何ですか？
見てみよう｡
スコープとは､ 多くのプログラミング言語に存在するものである｡
そして､ スコープとは簡単に言うと「どんな変数を持っているか」ということです｡
アクセスする｡
それだけです｡
では､ どういうことかというと
さて､ 以前にも紹介しましたが､ 印刷をした後､ 実行をクリックすると名前が表示されることがあります｡
エラーが出る
名前の間違いです｡
名前nameが定義されていないため｡
まあ､ 存在しないんですけどね｡
そうですね｡
そして､ ここまでは､ あまり議論されてこなかったのですが､ これはスコープの関係です｡
どのような変数にアクセスできるのか？
Pythonのインタプリタが､ 「おい､ 何にアクセスできるんだ？
そして､ それが理解できないもの､ あるいはアクセスできないものを使用すると､ 名前エラーが投げられることになるのです｡
また､ pythonのスコープには､ 関数スコープと呼ばれるものがあり､ ここでは変数は定義されていません｡
どういう意味ですか？
さて､ 今までは､ total equals to 100のような変数を作ると､ これはグローバルスコープと呼ばれる部分の一部になります｡
つまり､ このファイル上の誰もが､ この合計変数にアクセスできるのです｡
条件ブロックの中で使えるんだ｡
関数の中で使うことができる
グローバルに展開しています｡
でも､ Pythonは関数のスコープがあるというと｡
どういうことかというと､ 関数を作るときに､ totalをsomeとするか､ some funcとするか､
です｡
そして､ 関数の内部でtotalを作成します｡
ここに合計をプリントして､ 実行をクリックすると｡
私も同じことを言われます｡
名前合計が定義されていない｡
これは､ Pythonの関数スコープが原因です｡
関数の中でなければ､ いつでも変数を作成することができます｡
そして､ グローバルスコープの一部となる｡
私たちはそれにアクセスすることができます｡
しかし､ こちらでは赤い下線を引いた､ 未定義の名前が表示されていますね｡
もし､ 例えば､ ある条件､ if trueがあったとします｡
そうすると､ Xは10に相当します｡
こうしてXと書いて実行をクリックすると
というのも､ 10個もあるんです｡
まあ､ インデントがあるけれども｡
スコープを新規に作成する時だけです｡
これは､ 私たちが産み出す新しい宇宙と考えることができます｡
まあ､ こんな風に関数を定義して初めてできることなんですけどね｡
だから､ スコープは私たちが作る新しい世界だと考えてください｡
この場合､ 関数を作ると新しい世界ができ､ 関数の中でインデントされているものは､
私たちが実際にアクセスできない独自の世界となるのです｡
印刷をインデントしてこそtotalが使えるのです｡
そして､ それはこの世界の一部なのです｡
それがスコープです｡
誰が誰にアクセスできるのか？
では､ ここで一息つきましょう｡
次のビデオでは､ 誰が誰にアクセスできるのか､ ちょっとしたゲームをしてみたいと思います｡
その中でお会いしましょう｡
バイバイ｡