【发布时间】:2016-05-14 15:40:28
【问题描述】:
我正在尝试编写一个程序来查找某个范围内的素数。我正在尝试做的一件事是允许在没有所有参数的情况下调用该函数。
我想做的是这样的:
def find_primes(start=1, stop, primes=None):
primes 变量将被初始化为一个空白列表(我正在尝试使程序递归)。
但是,这会导致错误,因为我不能在所有必需值之前为参数使用默认值。
我想到的一种方法是:
def find_primes(start, stop=-1, primes=None):
if primes is None:
primes = []
if stop = -1:
stop = start
start = 1
基本上,如果 stop 保持在其默认的超出范围的值,我可以翻转变量。然而,这似乎很老套,我希望有更好的方法来做到这一点。
我知道这个实现的一个例子是 range 函数,因为我可以把它称为
range(stop)
或
range(start, stop[, step])
这可以实现吗?提前致谢。
编辑:在其他语言中,我可以使用函数重载:
def find_primes(stop):
return find_primes(1, stop)
def find_primes(start, stop, primes=None)
#Code
这在 Python 中存在吗?
【问题讨论】:
-
哦,是的。谢谢。在发布之前搜索解决方案时,我应该更笼统。 *args 方法肯定会起作用。
标签: python-3.x