3

さて、私は現在、Python でブラックジャック ゲームを作成するプロジェクトを行っていますが、問題が発生しています。私の問題の 1 つは、特に if ステートメントを使用する関数で、変数をグローバルとして定義するタイミングがわからないことです。if ステートメントの外にグローバル変数がある場合、その変数は if ステートメント内でもグローバルであると主張する必要がありますか? 例えば:

x = 5
def add():
    global x  <--- ?
    x += 1
    if x == 7:
        global x <--- ?
        x = 5

最初のクエスチョン マークに「グローバル x」が必要なのは確かですが、2 番目のクエスチョン マークはどうでしょうか。if ステートメントでグローバル変数を更新する場合、if ステートメント内に "global x" を配置する必要がありますか? または、関数の先頭にあるグローバル x は、if ステートメント内の x をグローバルにしますか? また、ここで x を返したい場合は、どこで行えばよいでしょうか?

4

1 に答える 1

3

1 つのglobalステートメントだけで十分です。

ドキュメントから:

ステートメントは、global現在のコード ブロック全体を保持する宣言です。

x = 5
def add():
    global x
    x += 1
    if x == 7:
        x = 5

また、ここで x を返したい場合は、どこで行えばよいでしょうか?

global関数で使用している場合は、ステートメントreturn xの後に来る必要があります。ステートメントを使用せず、ローカル変数も定義していない場合は、関数内のどこでも使用できます。global xglobalxreturn x

xローカル変数を定義した場合はreturn x、定義の後に来る必要があります。

于 2013-05-30T01:26:48.267 に答える