私はPython3.3を使用しています
使おうとしています
def my_function(a,b)
このような関数を出力しようとするprint(my_function())
と、値がゼロから始まると、「2つの必要な位置引数が欠落している」というメッセージが表示されます。
デフォルト値を使用したいので、print(my_function())
a = 10とb = aを使用すると、def my_function(a = 10、b = a)を試しましたが、「aが定義されていません」と表示されました。「a」を定義したくありません。以前グローバルでこのようなものを使用したい「defmy_function(a = 10、b = a)」は可能ですか?またはこのようなもの
def my_function(a,b)
if a == None:
a = 10
if b == None:
b = a
「print(my_function())」を使用した場合も、これは機能しませんでした。よろしくお願いします。David
デフォルトをNone
次のように設定できます。
def my_function(a=10, b=None):
if b is None:
b = a
ここでのデフォルトはa
ある10
、とb
に設定されているa
デフォルト値に任せます。
None
同様に受け入れる必要がある場合は、番兵として機能する別の一意のデフォルトを選択してください。のシングルトンインスタンスobject()
は、よく使用される規則です。
_sentinel = object()
def my_function(a=10, b=_sentinel):
if b is _sentinel:
b = a
今、あなたは呼び出すことができますmy_function(11, None)
し、b
に設定されますNone
、指定せずにそれを呼び出すb
(例えばmy_function()
またはmy_function(42)
、そしてb
何に設定されますa
に設定しました。
パラメータにデフォルトがない限り(たとえば、キーワードパラメータ)、必須です。
この記事はインターネットから収集されたものであり、転載の際にはソースを示してください。
侵害の場合は、連絡してください[email protected]
コメントを追加