私は次のような方法を持っています
    @staticmethod
    def add_transaction(name, date, amount, debit, user, category_id):
        pass
それらのいずれかが であるかどうかをテストする最良の方法は何Noneですか?
if not (name or date or amount or debit or user or category_id):
    raise ValueError
私は次のような方法を持っています
    @staticmethod
    def add_transaction(name, date, amount, debit, user, category_id):
        pass
それらのいずれかが であるかどうかをテストする最良の方法は何Noneですか?
if not (name or date or amount or debit or user or category_id):
    raise ValueError
if any(arg is None for arg in (name, date, amount, debit, user, category_id))):
    raise ValueError("I hate None")
arg is Noneを使用するだけでなく、テストする必要がありますnot。を使用すると、引数のいずれかが、、などであるnot場合に例外が発生しますが、これは必要なものではありません。False0[]
@DSM の提案もif None in (name, date...機能します。どちらを好むかはあなた次第です。
補足: 関数は多くの引数を取ります。おそらく、Transactionこのデータをカプセル化するクラスを作成し、このメソッド シグネチャをadd_transaction(transaction).
if None in (name, date, amount, debit, user, category_id):
    raise ValueError("I haz the Nones")
None がエラーをスローする場合は、事前にチェックするのではなく、必要に応じて関数にアクセスしてエラーを処理できます。
Pythonicの答えは次のとおりです。ユーザー入力(または別のプログラム、サブシステム、設定ファイルなど)からデータを取得するサブシステムのエントリポイントでない限り、そのような「検証」で時間を無駄にせず、渡されたものは何でも使用してください。有効な引数を渡す責任があり、そうしない場合、引数を使用しようとするととにかく例外が発生します。