【发布时间】:2011-02-09 01:37:35
【问题描述】:
假设我有一个函数foo,我想调用n 次。在 Ruby 中,我会写:
n.times { foo }
在 Python 中,我可以这样写:
for _ in xrange(n): foo()
但这似乎是一种老套的做事方式。
我的问题:在 Python 中有没有一种惯用的方式来做到这一点?
【问题讨论】:
-
不要忘记 ruby 也会计算循环的计数器变量。特别是 n.times{|i|富}。在您的情况下,您只是将其丢弃。那么为什么这在 ruby 中可以,但在 python 中是 hacky 呢?
-
因为我不必明确地扔掉它。 :-) Ruby 版本也更好地展示了该行的意图,IMO。
-
我使用 x 作为丢弃变量,但
_似乎更惯用。是的,python 没有times函数.. -
@perimosooriade 如果您担心向其他 Python 开发人员清楚地“展示您的意图”,
_是您的最佳选择。 -
@drozzy ruby 块不强制执行 arity 的部分原因是,您可以完全按照本例中的方式丢弃变量——它不会影响性能,而且是惯用的。没什么可笑的。