例子如下:
def fun(x1,y):
global y
t=x1
x1=y
y=t
if __name__=="__main__":
x=0
y=1
fun(x,y)
print(x,y)
运行结果如下;

这里有个错误,y是参数又是全局的
找了好久,在这里找到了
https://stackoverflow.com/questions/18807749/name-x-is-parameter-and-global-python
这是因为
全局语句中列出的名称不能定义为形式参数,也不能定义为 for循环控制目标,类定义,函数定义或import语句。
把global y 放到函数外面定义就行了或者把参数改为y1
def fun(x1,y1):
global y
t=x
x1=y1
y=t
x=0
y=1
fun(x,y)
print(x,y)

修正Python全局变量与参数冲突
本文探讨了Python中全局变量与函数参数名冲突的问题,通过一个具体示例展示了错误的发生,并提供了两种解决方案:一是将全局变量声明移至函数外部,二是更改函数参数名。深入解析了Python语法对全局变量和局部变量的处理规则。
3万+

被折叠的 条评论
为什么被折叠?



