python,“x”如何在代码中更改其值

时间:2015-02-19 17:08:21

标签: python

a = 100
x = 1000
def myFun(a,b):
    x = b-a
    return x 

a = myFun(a,x)
x = myFun(a,x)
print(x+a)

我知道在第一个函数中,a = myFun(a,x)900,但为什么结果为x = myFun(a,x)100

1 个答案:

答案 0 :(得分:3)

函数x中的名称myFunc()与全局名称x 独立。它们位于不同的名称空间中。

因此,当您第一次呼叫myFunc(a, x)时,全局x值不变;它仍然是1000

>>> a = 100
>>> x = 1000
>>> def myFun(a,b):
...     x = b-a
...     return x 
... 
>>> myFun(a,x)
900
>>> x
1000

如果您希望在调用x时更改全局myFunc(),则需要明确告知Python x将被视为全局功能:

def myFun(a,b):
    global x
    x = b-a
    return x 

现在,在函数中分配给x将设置全局名称x

>>> a = 100
>>> x = 1000
>>> def myFun(a,b):
...     global x
...     x = b-a
...     return x 
... 
>>> myFun(a,x)
900
>>> x
900