私は以下の "assert"を使用して、関数の引数の値を検証しています。 "test"というBoolean型の入力 "arg1"を持つ関数 "None"、TrueまたはFalseがあります。 "arg1"がこれらの可能な値の1つだけであることを確認してもよろしいですか?引数の値が定義された範囲の値の一部であるかどうかを確認する正しい方法ですか?
これを行うことはできません:以下
def test(arg1=None): assert arg1 in set([None, True, False]), "Not a valid input" ...
私の友人が私に語りました。 True、False、Noneをアイデンティティ(=ではない)として比較する必要があります。 inを行うことは、multiple =のと等価です。あなたは別のものを維持しなければなりません。
これは間違いありませんか?
はい、そうです。 '1、{True、False、None}'は 'True'を返します。 'any(1は{True、False、None}のoはoです)'は 'False'を返します。 –