我在下面附上了我的 python 脚本的屏幕截图(带有行号以便于参考),其中还包括两个测试用例。 我用 pytest 命令运行它,运行成功完成。
我想指出,第 5 行和第 6 行中有两个变量,它们也在脚本的函数中使用。我的问题是为什么第 5 行中的变量
lines_already_read
不需要声明为全局变量,而 parse_line_call_count
则需要声明为全局变量? 如果我注释掉第 12 行中的全局声明,则运行会失败并出现 UnboundLocalError: local variable 'parse_line_call_count' referenced before assignment
错误 - 但它是在第 6 行中声明的。我相信第 5 行和第 6 行中的那些变量已经被视为全局变量,对吗?
代码如下:
非常感谢有用的意见。
答案很简单:一个是可变对象,一个集合,只需要引用即可改变其内容,另一个是不可变对象,一个整数值,不能更改,而是必须指向变量到一个新的整数值。