名称是python中的本地和全局语法错误

名称是python中的本地和全局语法错误,python,Python,我在执行下面的语句时出错 a = 10 def test_method(a): global a print("Old value of local a = " + str(a)) #this is returning "a = 10" a = 2 print("New value of local a = " + str(a)) test_method(a) print("Value of global a = " + str(a)) 输出 SyntaxE

我在执行下面的语句时出错

a = 10

def test_method(a):
    global a
    print("Old value of local a = " + str(a)) #this is returning "a = 10"
    a = 2
    print("New value of local a = " + str(a))

test_method(a)
print("Value of global a = " + str(a))
输出

SyntaxError: name 'a' is local and global

如何在此过程中全局更改函数参数的值,函数参数和实际参数的名称相同,我真的认为正确的答案是,正如我所评论的,只需为函数参数选择一个不同的名称,但如果由于某种原因无法更改,您可以通过以下方式访问全局
a


虽然这有点老套,但我强烈建议只更改变量名,以避免出现错误

只是为函数参数选择一个不同的名称?如果我有相同的名称怎么办?是什么迫使你对这两个参数使用相同的名称?我看到一些格式错误,可能会让读者感到困惑,请更正它们(缺少定义,输出不清楚…)@arshajii:没有什么强迫我。我在做某事的时候被困在了这个问题上。我想除了改名还有别的办法。谢谢。但是我们如何改变过程中的值来反映outside@Nitesh
globals()['a']=…
>>> a = 10
>>> def test_method(a):
...     print('global:', globals()['a'])
...     print('local: ', a)
... 
>>> test_method(42)
global: 10
local:  42