当我遇到这种情况我可以用javascript来做的时候,我总是认为如果有一个foreach
函数会很方便。foreach 我的意思是下面描述的功能:
def foreach(fn,iterable):
for x in iterable:
fn(x)
他们只是在每个元素上都这样做并且没有产生或返回某些东西,我认为它应该是一个内置函数并且应该比使用纯 Python 编写它更快,但我没有在列表中找到它,或者它只是叫了另一个名字?或者我只是在这里错过了一些点?
也许我错了,因为在 Python 中调用函数的成本很高,对于这个例子来说绝对不是一个好习惯。而不是一个输出循环,该函数应该在它的主体侧执行循环,如下所示,这在许多 python 的代码建议中已经提到:
def fn(*args):
for x in args:
dosomething
但基于以下两个事实,我认为 foreach 仍然受欢迎:
- 在正常情况下,人们只是不关心性能
- 有时 API 不接受可迭代对象,您无法重写其源代码。