Python是否每次循环都执行我的方法?

2024-04-19 08:44:27 发布

您现在位置:Python中文网/ 问答频道 /正文

我有一个包含大量信息的类(ElementList)。我实现了一个方法(.ToArray()),它获取对象的一些信息并将其放入数组或列表中

我要循环这个数组。当我执行以下操作时:

for Element in ElementList.ToArray()
    Do stuff

它是否每次都执行.ToArray()


Tags: 对象方法in信息列表for数组element
1条回答
网友
1楼 · 发布于 2024-04-19 08:44:27

根据https://docs.python.org/3/reference/compound_stmts.html#the-for-statement

for_stmt ::=  "for" target_list "in" expression_list ":" suite
          ["else" ":" suite]

The expression list is evaluated once; it should yield an iterable object.

所以你的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

相关问题 更多 >