我有一个像
@staticmethod
def add_transaction(name, date, amount, debit, user, category_id):
pass
Run Code Online (Sandbox Code Playgroud)
测试它们中的任何一个的最佳方法是None什么?
if not (name or date or amount or debit or user or category_id):
raise ValueError
Run Code Online (Sandbox Code Playgroud)
if any(arg is None for arg in (name, date, amount, debit, user, category_id))):
raise ValueError("I hate None")
Run Code Online (Sandbox Code Playgroud)
您需要测试arg is None,而不仅仅是使用not. 有了not,你最终会抛出一个异常,如果任何参数是False,0,[]等,这是不是你想要的。
@DSM 对if None in (name, date...作品的建议也是如此——这取决于你喜欢哪个。
旁注:您的函数需要很多参数。我想知道您是否不能以某种方式重构它 - 也许您可以创建一个Transaction封装这些数据的类,并将此方法签名更改为add_transaction(transaction).
| 归档时间: |
|
| 查看次数: |
455 次 |
| 最近记录: |