2016-11-18 15 views
1

グローバルxは、グローバル変数 を作成しているか、既存の「x」変数をグローバルとして割り当てることを意味しますか?変数スコープとグローバル変数

def evaluate_expression_1(x): 
    x = x - 3 

    def evaluate_expression_2(): 
     global x 
     return x + 7 

    return evaluate_expression_2() 
# Main Program # 
x = 7 
print(evaluate_expression_1(x)) 

出力は18でなく14になります。ロジックは何ですか? 18を取得するには、コード
global xラインで

答えて

0

、xが18を取得するには、コード
global xラインがなければ11
する必要があり、Xは、あなたがこのコードで期待するべきである14
回答する必要がありますマイナスglobal x文です11
global xステートメントは、後で定義されたxのバージョンを使用します。
名前を変更すると

という名前の後に変更名 xが表示されます。