如何在Python中的for循环中更改对象变量
我不确定这是一个容易解决的简单问题还是需要深入挖掘的问题。
假设我有一个带有变量 Item.a
和 Item.b
的对象 Item
。 现在我有这些对象的两个实例: Item1
和 Item2
我需要的是这样的东西:
for (value_1, value_2) in [(Item1.a, Item2.a), (Item1.b, Item2.b)]:
if value_1 != value_2:
value_1 = value_2
当然,这只是更复杂问题的一个示例。替换是可以的,它找到对象之间的差异并替换它们。问题是,我一直在这些变量的副本上执行此操作,而不是在对象引用上执行此操作。一旦完成循环,我就可以打印 Item1
和 Item2
并且它们与循环之前相同。
是否有可能将引用传递到循环中?我知道如何使用列表来做到这一点,但我找不到对象的答案。
I'm not sure, whether it's an easy problem with easy solution or it's something that needs to dig a little deeper.
Let's say I have an object Item
with variables Item.a
and Item.b
.
Now I have two instances of these objects: Item1
and Item2
What I need is something like this:
for (value_1, value_2) in [(Item1.a, Item2.a), (Item1.b, Item2.b)]:
if value_1 != value_2:
value_1 = value_2
Of course this one is only an example of more complex problem. The substitution is ok, it finds differences between objects and substitutes them. The problem is, that all the time I'm doing it on copies of those variables, not on object references. As soon as it finish the loop, I can print both Item1
and Item2
and they are the same as before loop.
Is there any possibility to pass references into a loop? I know how to do it with lists, but I could not find an answer to objects.
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(1)
好吧,
[(Item1.a, Item2.a), (Item1.b, Item2.b)]
只是创建一些值的元组列表。通过创建它,您已经失去了与ItemX
的连接。你的问题与循环无关。也许您想要
或者类似的东西,但也将
ItemX
传递给循环:Well,
[(Item1.a, Item2.a), (Item1.b, Item2.b)]
just creates a list of tuples of some values. Already by creating this you loose the connection toItemX
. Your problem is not related to the loop.Maybe you want
Or something similar but with passing
ItemX
to the loop too: