2016-11-18 117 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)) 

输出是14而不是18。逻辑是什么?

回答

0

随着global x行代码
拿到18,X应该是11
没有global x行代码
拿到18,X应该是14
回答你应该期望与此代码减去global x声明11
global x语句使用更高版本的x。
要亲眼看看, 更改名称x后功能名称n