在Python中,符号名(如代码中的pan_low_limit)是对值的引用(如“-27067”)。在
当一个名称分配给另一个名称时(就像代码中的limits和v)时,新名称将成为对该值的附加引用。在您的例子中,在赋值之前的第一次迭代中,名称:pan_low_limit、limits[0][0]和{}都引用相同的值:
但是,当您为一个新值指定(或绑定)一个名称时,只有该名称将引用新值。在您的情况下,任务完成后,您将获得:
为了获得您想要的结果,您应该更改变量,而不是重新分配它,以便所有引用都引用相同的新值。但是,在Python中,整数是不可变的,因此您不能更改它。
解决方案是使用一些可变的东西,例如列表。在
如果您有一个可变变量,则可以更改原始值以获得预期的结果。您可以在以下两个片段中看到这种差异:
使用整数:pan_low_limit = 1
pan_high_limit = 1
tilt_low_limit = 1
tilt_high_limit = 1
limits = [(pan_low_limit, "PN"), (pan_high_limit, "PX"), (tilt_low_limit, &#