作者回复: 因为global在最后的函数执行才生效啊,试试在输出增加print(id(var)),看看你能否区分开同名的var是否为相同的两个内容?
作者回复: 注意看报错信息是语法错误,是否使用了中文的全角“,”而不是英文的“,”
作者回复: 关于变量作用域的问题可以参考作用域、闭包的定义章节视频和下方精选留言,不再重复解答了。 另一个问题是赋值语句的问题,在Python中赋值语句是引用对象的内存,而不是复制对象; 例如: a = [0, 1, 2, 3] 要理解成为一个列表[0, 1, 2, 3]贴上了一个标签a; 当使用 a = [4, 5, 6] 时,相当于把a标签贴给了[4, 5, 6],而列表[0, 1, 2, 3]所在的内存并没有发生变化 因此无论在函数里面还是外面,修改了列表,就是直接对内存存储的信息做了改动,而整形变量要遵循变量作用域LEGB 原则。变量作用域涉及的知识点比较多,建议通过搜索引擎补充了解变量作用域、深拷贝、浅拷贝相关知识。
作者回复: 视频感受到了你想学Python的迫切希望,加油