def group_move(group, damper):
# Make a copy to test values
new = group
# See what the original group value is
print("Test = " + str(group.ctris[0].p1.x))
dr = some float
dx = some float
dy = some float
# Make changes to new
moveGroup(new, dr, dx, dy)
# See if those changes produce allowed values
if (off_board_check(new) == 1):
damper += 2.0
# Reset to original to try again
print("Test Here = " + str(group.ctris[0].p1.x))
group_move(group, damper)
else:
# If everything is on the board, then make the change
group = new
これを実行すると、最初の再帰で、Test
印刷行が印刷行とは異なる値を生成することがわかりTest Here
ます。なんで?このコードは の値にどのような影響を与える可能性がありgroup
ますか? テスト値が失敗した場合に備えて、変更group
されていないものを次の再帰レベルに渡そうとしていますが、再帰呼び出しを行う前に何らかの影響を受けているようです。上記はこれとどう違うのですか:group_move
group
>>> x = 1
>>> y = x
>>> x = 7
>>> y = 77
>>> x
7
>>> y
77