【发布时间】:2015-10-11 00:14:43
【问题描述】:
我正在为模拟软件编写用户程序。有一个名为 adj_elect05 的变量。以下代码块被一遍又一遍地调用。每次调用它时,我都希望将 adj_elect05 (具有数值)增加一定数量,然后将该数量写入文件。这是有效的代码:
increment = -10
adj_elect05 = adj_elect05 + increment
oct_voltages = io.open(O_V, "a+")
oct_voltages:write("\n", adj_elect05)
oct_voltages:close ()
在文件中,我得到一个数字列表:-10、-20、-30 等等。问题是我需要给 adj_elect05 一个通用名称,以便以后可以更改它而不必更改它显示的每个实例,所以我写道:
increment = -10
octupole_v = adj_elect05
octupole_v = octupole_v + increment
oct_voltages = io.open(O_V, "a+")
oct_voltages:write("\n", octupole_v)
oct_voltages:close ()
这样,每次代码运行时,我都会将 -10 写入文件,而不是每次都减少 10。我究竟做错了什么?
【问题讨论】:
-
该代码是否在循环/函数中?您是否每次都在循环/函数中从
adj_elect05分配?因为你永远不会改变adj_elect05,所以如果你每次通过循环/函数(在第二个sn-p中)从adj_elect05分配给octupole_v,你每次都撤消你的增量修改。 -
它在一个函数中。那么有没有办法重命名adj_elect05?由于 octupole_v 在第一个循环中被更改,然后在第二个循环中分配给 adj_elect05,我希望 adj_elect05 会增加。
-
octupole_v不是对adj_elect05变量的引用。它是一个自变量,被赋予相同的值。对octupole_v的更改不会更改adj_elect05。以a=5; b=a; print(a); print(b); b="foo"; print(a); print(b)为例。 -
哦,我明白了。这就说得通了。那么有没有办法创建对 adj_elect05 的引用?
-
不是,不是。您可以使用表并更新其字段,也可以在最后分配回全局变量,或者根本不能使用单独的变量。
标签: variables lua variable-assignment