关于Python全局变量的问题(用pytest跑)

问题描述 投票:0回答:1

我在下面附上了我的 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 行中的那些变量已经被视为全局变量,对吗?

代码如下:

enter image description here

非常感谢有用的意见。

python-3.x pytest
1个回答
0
投票

答案很简单:一个是可变对象,一个集合,只需要引用即可改变其内容,另一个是不可变对象,一个整数值,不能更改,而是必须指向变量到一个新的整数值。

© www.soinside.com 2019 - 2024. All rights reserved.