3

先週から Python の学習に取り組んでおり、とても順調に進んでいますが、カスタム関数を紹介されて、壁にぶち当たりました。次のような基本的なことは理解していますが、

def helloworld():
    print("Hello World!")

helloworld()

これで「Hello World!」が出力されることはわかっています。

ただし、ある関数から別の関数に情報を取得することになると、混乱します。つまり、function1 と function2 は、タスクを実行するために連携する必要があります。また、いつreturnコマンドを使用するか。

最後に、関数内にリストまたは辞書がある場合。例として何かを作ります。

def my_function():
    my_dict = {"Key1":Value1,
              "Key2":Value2,
              "Key3":Value3,
              "Key4":Value4,}

キー/値にアクセスして、関数の外部から変更するにはどうすればよいですか? 例: ビデオ ゲームでプレイヤーの統計情報やキャラクターの属性を入力/出力できるプログラムがあったとします。

私はこれの断片を理解していますが、互いに異なる機能を呼び出すと混乱します。

また、これがカスタム関数との最初の出会いだったので。これを追求するのは本当に野心的で、これが私の混乱のすべての理由でしょうか? これは私が今まで見た中で最も複雑なプログラムです。

4

3 に答える 3

3

関数間で情報を渡す主な方法は、引数と戻り値を使用することです。関数は互いの変数を見ることができません。後はそう思うかもしれません

def my_function():
    my_dict = {"Key1":Value1,
              "Key2":Value2,
              "Key3":Value3,
              "Key4":Value4,}
my_function()

my_dict他の関数が見ることができる値を持つでしょうが、それは言語を設計するための本当に脆弱な方法であることが判明しました. を呼び出すたびmy_functionに、my_dictまだ使用していたとしても、古い値が失われます。また、新しい関数を作成するときに使用する名前を選択するときに、システム内のすべての関数で使用されるすべての名前を知っている必要があり、全体が急速に管理不能になります。Python はそのようには機能しません。対応している言語は思いつきません。

代わりに、関数が呼び出し元に情報を提供する必要がある場合、return呼び出し元が見る必要があるものは次のとおりです。

def my_function():
    return {"Key1":"Value1",
            "Key2":"Value2",
            "Key3":"Value3",
            "Key4":"Value4",}
print(my_function()['Key1']) # Prints Value1

Note that a function ends when its execution hits a return statement (even if it's in the middle of a loop); you can't execute one return now, one return later, keep going, and return two things when you hit the end of the function. If you want to do that, keep a list of things you want to return and return the list when you're done.

于 2013-07-30T01:38:57.630 に答える