【发布时间】:2017-03-03 13:37:18
【问题描述】:
许多 Python 内置“函数”实际上是类,尽管它们也有一个简单的函数实现。即使是非常简单的,例如itertools.repeat。这样做的动机是什么?对我来说,这似乎是过度设计。
编辑:我不是在问itertools.repeat 或任何其他特定功能的目的。这只是一个非常简单的函数的示例,具有非常简单的可能实现:
def repeat(x):
while True: yield x
但itertools.repeat 实际上并不是一个函数,它是作为一个类实现的。我的问题是:为什么?这似乎是不必要的开销。
我还了解类是可调用的函数,以及如何使用类来模拟类似函数的行为。但我不明白为什么它通过标准库被如此广泛地使用。
【问题讨论】:
-
itertools 是用 C 语言实现的,而不是 Python。
-
你能举一些更清楚的例子吗?
-
你想到的所有案例都用C实现了吗?还是有一些是原生 Python?
标签: python class standard-library