【发布时间】:2012-11-16 18:49:11
【问题描述】:
确保使用特定 kwarg 调用方法的一种方法是:
def mymethod(self, *args, **kwargs):
assert "required_field" in kwargs
提出AssertionError 似乎不是最合适的做法。是否有一致同意的内置异常来处理此问题并提供很好的错误消息?
更多信息:存在需要传递 *args 和 **kwargs kinda' 的 3rd-party 子类化问题,因此将“required_field”作为位置参数并不是一个好的选择。
【问题讨论】:
-
我认为标准的做法是不要将其设为“默认参数”。
-
已经有一些我不想弄乱的位置参数。
-
更一般地说,也有一些情况是 kwargs 可以接受许多键,只有在满足特定条件时,其他关键字参数的存在或值才需要一些键。