我一直在寻找关于 python 类初始化的几篇文章(例如 Ref1Ref2Ref3 ),但我找不到是否有一种干净的方法来要求某些输入。如果不包含该参数,则需要命名参数并抛出一致异常的最佳方法是什么?

我希望具有与 requireadd_argument() 方法的 ArgumentParser 参数类似的功能。

最佳答案

这样的事情应该工作:

class Foo(object):
    def __init__(self, required_arg=None):
        if required_arg is None:
            raise ValueError("Expected non-None value for required_arg")

如果您希望任何内容成为有效值,只要明确提供了某些内容,那么您可以执行以下操作:
_Foo_default = object()
class Foo(object):
    def __init__(self, required_arg=_Foo_default):
        if required_arg is _Foo_default:
            raise ValueError("Expected a user-supplied value for required_arg")

关于python - 是否有一种优雅且 Pythonic 的方式来要求类构造函数的输入?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/21245323/

10-11 19:19