【发布时间】:2014-01-14 21:02:05
【问题描述】:
我正在尝试在 python 中编写素数模块。我希望能够写的一件事是
>>> primes.primesLessThan(12)
[2, 3, 5, 7, 11]
不过,我也希望能写
>>> primes.primesLessThan.Sundaram(12)
[2, 3, 5, 7, 11]
强制它使用 Sundaram 筛子。我最初的想法是让 primesLessThan 成为一个具有几个静态方法的类,但是由于 __init__ 不能返回任何内容,这并没有让我实现第一个示例。作为一个单独的模块,它会更好地完成导入,还是我错过了其他一些东西?
【问题讨论】:
-
将算法作为字符串参数之一传递?
-
primes.primesLessThan(12, algorithm='sundaram')? -
如果它们都是真正的静态类,您可能可以在该类上使用
__call__函数来完成第一个。
标签: python class module code-structure