私はある範囲の素数を見つけるプログラムを書こうとしています。私がしようとしていることの1つは、関数がすべての引数なしで呼び出されることを可能にすることです。必要な値の前に関数にデフォルト値を渡す
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])
を実現することが可能で、このされているように私はそれを呼び出すことができますので、
どこかに私はこれが実装されている知っているの例では、レンジ機能ですか?前もって感謝します。
EDIT:他の言語では、私は、関数のオーバーロードを使用することができます
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