【发布时间】:2015-09-09 07:17:59
【问题描述】:
以下代码
lst = ['foo', 'bar', 'baz']
for lst in lst:
print lst
给我这个输出
foo
bar
baz
我预计会出现错误或以下输出:
['foo', 'bar', 'baz']
['foo', 'bar', 'baz']
['foo', 'bar', 'baz']
上面的代码是错误的,应该是
lst = ['foo', 'bar', 'baz']
for lst_element in lst:
print lst_element
为什么python 虽然产生了预期的输出?
【问题讨论】:
-
如果它已经产生了预期的输出,那有什么问题?
-
为什么会出现错误? Python 是强类型但动态类型,它对你遮蔽
lst没有问题。 -
@ZdaR:没有错,但我想了解会发生什么。并且来自其他语言,令我惊讶的是这段代码可以工作,我想知道它为什么/如何工作。
-
@jonrsharpe:我原以为迭代会被第一个循环覆盖。所以我显然必须阅读和了解阴影。
-
@CoryKramer:你说得对,我的问题涉及相同的主题。但是我找不到问题(不知道我需要搜索同名的迭代器)-对不起!
标签: python python-2.7