有人可以解释python中的变量赋值吗?我知道一个变量被标记到内存中的某个位置,因此可以将多个变量标记到相同的位置。Python变量赋值的行为标量与化合物
这是什么意思?除了改变复合数据类型,从而改变所有的指向变量之外,还有其他的吗?
有没有任何情况下,这是相关的时不变异化合物数据类型?
谢谢
有人可以解释python中的变量赋值吗?我知道一个变量被标记到内存中的某个位置,因此可以将多个变量标记到相同的位置。Python变量赋值的行为标量与化合物
这是什么意思?除了改变复合数据类型,从而改变所有的指向变量之外,还有其他的吗?
有没有任何情况下,这是相关的时不变异化合物数据类型?
谢谢
我认为这个问题对于SO格式来说有点过于宽泛。 “对多个同一对象的引用可能做的事情”的空间很大。但无论如何,是的,与对多个可变数据类型进行多次引用相比,可能会有更多的使用(和滥用)。
例如,您可以有效地对维护状态的对象(如生成器)进行多次引用,并按顺序访问您的引用,也许可以对每个对象执行不同的操作。一个“可爱绝招”是相当频繁出现的是下面的方法为“块”可迭代到n
件:
s = 'this is a string'
its = [iter(s)] * 2
zip(*its)
Out[17]:
[('t', 'h'),
('i', 's'),
(' ', 'i'),
('s', ' '),
('a', ' '),
('s', 't'),
('r', 'i'),
('n', 'g')]
显然你不需要进行多次引用到相同的迭代器的能力完成这个任务,但python让你这样做。这种类型的方法可能是有用的,如果你想“划分”一个文件类对象,或沿着这些线。
至于“陷阱”,或者你需要注意的事情,它们大部分是关于同一问题的即兴演绎。 python编程中的How do I make a multidimensional list常见问题涵盖了它很好。
[Python:我如何通过引用传递变量?](http://stackoverflow.com/questions/986006/python-how-do-i-pass-a-variable-by-reference) – FallenAngel