编程语言
首页 > 编程语言> > python – 强制某些设置需要可选参数

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