お帰りなさい｡
それでは､ 皆さんの疑問にお答えしましょう｡
例えば､ パラメーターはどうでしょうか｡
パラメータをやれば？
ここではBとします｡
Bをこのように使用した場合､ このパラメータは何ですか？
では､ プリントとしましょう｡
なる｡
そして､ この中で､ 例えば300という数字と混同してしまうのです｡
これを実行すると
これが効くんです｡
そしてそれは､ B､ パラメータがローカルスコープの一部であるためです｡
つまり､ この一部なのです｡
つまり､ パラメータはローカル変数とみなされます｡
関数の中では使えるんですが､ その関数の外では使えないんです｡
技術的には､ 関数を定義するときに､ インタープリタに「Bはローカル変数にするんだよ」と教えているのです｡
OC これはどうですか？
これがあればどうでしょう？
A しかし､ 関数内部で実際にグローバルなAを参照していることを確認したいのです｡
新しい変数を作成せずに､ この値だけを使用する方法はありますか？
これについては､ もっと良い例を使ってみましょう｡
例えば､ カウンターを作りたいとします｡
だから､ トータルはゼロに等しくなる｡
そして､ この中に｡
ディファインカウントと言います｡
そしてこの機能は､ 合計と言うことになる｡
プラスは1に等しい｡
だから､ countを足すときにいちいち0を1ずつ増やしていき､ 1ずつ増やしていくんだ｡
だから､ この最後にtotalを返すことにしている｡
だから､ ここを走るとプリントカウントされる｡
どうなるか見てみましょう｡
打ってみる｡
走る｡
そして､ 代入前にローカル変数totalが参照され､ それはwell countがtotalについて知らないからだというエラーが発生します｡
トータルで使おうとしているが､ まだ何も割り当てられていない｡
でも､ 外界からの総量は走らせたい｡
というのも､ ここでトータルイコールゼロにして､ カウントを実行すると｡
それは素晴らしいことです｡
一本取られる｡
しかし､ あるカウントを複数回実行したい場合はどうすればいいのでしょうか？
例えば､ カウントを3回実行し､ カウントの合計が3になるようにしたい場合はどうすればよいでしょうか｡
では､ ここで最後の1枚をプリントしてみましょう｡
そして､ 「実行」をクリックします｡
機能を実行するたびに､ 合計をゼロにリセットしているので､ 今でも1枚は出ています｡
それじゃ使い物にならないでしょ？
そこで､ これを解決する一つの方法として､ Pythonでいうところのglobalキーワードを使用します｡
そしてglobalは､ もしここに存在するならば､ グローバルな合計を使うということで､ 新しい変数を作る代わりに､
グローバル変数totalを使うことができます｡
こちらをご覧ください｡
これは､ まずグローバルトータルがここで使われ､ 次にトータルプラスが1になることを言わなければならないからです｡
これを実行すると
その様子｡
ちゃんとしたカウンターがあるので､ globalはこのグローバル変数にアクセスするための手段なんです｡
なぜなら､ グローバルを追加し始めると､ すべての異なるユニバースが互いの変数にアクセスすることになり､
本当に混乱する可能性があるからです｡
より良い方法として､ 依存性注入と呼ばれるものがあり､ これはその簡易版である｡
しかし､ このように関数の外の変数にアクセスする代わりに､ ファイルが大きくなると本当に､
本当に複雑になってしまうのですが､ その代わりにこうするのです｡
これです｡
合計
このように､ パラメータを作成し､ そのパラメータを渡す｡
ここでの議論も｡
でも､ 見ての通り､ 3回目の合計を印刷するころには､ まあ､ これは変わらないので､ まだ1回です｡
これがグローバルゼロです｡
だから､ 代わりにこんなことができるんです｡
そのうちのカウント・トータルを､ またカウントすると言えばいいのです｡
そして､ もう一度数えてみてください｡
これを実行すると
私は3つもらっています｡
そして､ あなたの考えていることはよくわかります｡
まったくもって正気の沙汰とは思えません｡
混乱しそうですね｡
見てください､ このカッコの数々｡
でも､ 実際にやったことをお見せしましょう｡
このカウント関数が外部のグローバルスコープに与えていた依存性や影響を切り離し､ 代わりにその健全性に焦点を当てることができるのです｡
あとは､ 「おい､ 合計ゼロでカウントしてくれ」と言うだけです｡
そしてその後､ これは1つに評価されることになります｡
そして､ 1＋1は2になり､ 2＋1は3になるとカウントしていきます｡
こうすることで､ グローバルキーワードを使わなくても､ カウントを行うことができます｡
ただし､ 初めて見る人は少し戸惑うかもしれませんね｡
でも､ 少なくともこうして､ いろいろなやり方があることを知ることができます｡
もうひとつ､ ノンローカルという言葉も紹介したい｡
でも､ その分､ 一旦休憩して､ 次の動画でお会いしましょう｡