我有一个包含大量信息的类(ElementList)。我已经实现了一种方法(.ToArray()),该方法获取对象的一些信息并将其放入数组或列表中。
我想循环这个数组。当我执行以下操作时:
for Element in ElementList.ToArray()
Do stuff
它每次都执行.ToArray()吗?
答案 0 :(得分:1)
根据https://docs.python.org/3/reference/compound_stmts.html#the-for-statement,
for_stmt ::= "for" target_list "in" expression_list ":" suite
["else" ":" suite]
表达式列表被评估一次;它应该产生一个可迭代的对象。
因此,您的ElementList.ToArray()
仅执行一次。
您可以通过使函数打印一些内容来进行实验验证;那么您会发现它只打印一次。
>>> def make_list():
... print("I'm being evaluated!")
... return [1,2,3]
...
>>> for x in make_list():
... print(x)
...
I'm being evaluated!
1
2
3