0
我正在嘗試編寫一個程序來查找某個範圍內的素數。我試圖做的事情之一是允許函數在沒有所有參數的情況下被調用。在需要的值之前傳遞一個默認值到一個函數
我想要做的是這樣的:
def find_primes(start=1, stop, primes=None):
素數則變量將被初始化爲空的列表(我想使程序遞歸)。
但是,這將導致錯誤,因爲我無法在所有必需值之前爲參數使用默認值。
一種方式我覺得這樣做的是:
def find_primes(start, stop=-1, primes=None):
if primes is None:
primes = []
if stop = -1:
stop = start
start = 1
基本上,我可以翻轉的變量,如果停止維持在默認值,超出範圍的值。然而,這看起來很不方便,我希望有更好的方法來做到這一點。
某處的一個例子,我知道這是實現在範圍功能,因爲我可以把它作爲
range(stop)
或
range(start, stop[, step])
這是可能實現?提前致謝。
編輯:在其他語言中,我可以使用函數重載:
def find_primes(stop):
return find_primes(1, stop)
def find_primes(start, stop, primes=None)
#Code
這是否存在使用Python?
的可能的複製http://stackoverflow.com/questions/13366293/how-can-the-built-in-range-function-take-a-single-argument-or-three – jonrsharpe
噢。謝謝。在發佈之前搜索解決方案時,我應該更一般。 * args方法肯定會起作用。 – ratorx