Kha*_*lla 2 python for-loop python-2.7
我在python中有以下代码示例:
def get_objects():
print 'Called get_objects'
return [1, 2, 3, 4, 5]
def main():
for i in get_objects():
print i
main()
Run Code Online (Sandbox Code Playgroud)
输出如下:
Called get_objects
1
2
3
4
5
Run Code Online (Sandbox Code Playgroud)
所以我的问题是为什么get_objects()只调用一次?为什么每次尝试都没有获取数据?
因为这正是for循环在Python中的工作原理.在循环开始之前,in
运算符右侧的表达式(在计算时必须返回迭代值)仅计算一次.然后,for循环遍历该评估返回的iterable.
以下是文档*的摘录:
for语句用于迭代序列的元素(例如字符串,元组或列表)或其他可迭代对象:
Run Code Online (Sandbox Code Playgroud)for_stmt ::= "for" target_list "in" expression_list ":" suite ["else" ":" suite]
表达式列表评估一次 ; 它应该产生一个可迭代的对象.
*注意:我添加了粗体.
归档时间: |
|
查看次数: |
83 次 |
最近记录: |