我一直在寻找python中类初始化的几篇帖子(例如Ref1,Ref2,Ref3)但我找不到是否有一种干净的方法需要确定投入。如果不包含参数,那么制作命名参数的最佳方法是什么,并抛出一致的异常?
我希望add_argument()
中的ArgumentParser
方法的require
参数具有类似的功能。
答案 0 :(得分:5)
这样的事情应该有效:
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")