python – 强制某些设置需要可选参数
作者:互联网
我创建了一些课程,
class c:
def __init__(self, mode=False):
if mode:
force foo to require optional_parameter
def foo(self, optional_parameter=""):
print("something %s" % optional_parameter)
有没有办法,如果使用mode = True实例化类,调用方法时需要所有optional_parameter值,实际上不再是可选的?
解决方法:
您可以记住属性中的模式,并检查是否已传递optional_parameter:
class c:
def __init__(self, mode=False):
self.mode = mode
def foo(self, optional_parameter=""):
if self.mode and optional_parameter == "":
raise RuntimeError("optional_parameter must be passed")
print("something %s" % optional_parameter)
您可以通过字典解包来概括:
def foo(self, **kwargs):
if self.mode and 'optional_parameter' not in kwargs:
raise RuntimeError("optional_parameter must be passed")
print("something %s" % kwargs['optional_parameter'])
我找不到这种情况的最佳例外,你可能想创建自己的.不过我会使用RuntimeError
.
标签:python,parameter-passing,python-2-7,parameters,optional-parameters 来源: https://codeday.me/bug/20190627/1307303.html