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