如何将类的数据属性用作类方法中的默认参数?

d3p*_*3pd 2 python methods arguments class self

假设我想将类方法的参数的默认值设置为类的某个数据属性的值.这样做的适当方法是什么?有没有办法使用lambda函数?

这是一些示例代码:

class A(object):

    def __init__(
        self
        ):
        self._defaultReportText = "hello world"

    def report(
        self,
        text = self._defaultReportText
        ):
        return(text)
Run Code Online (Sandbox Code Playgroud)

显然,text方法参数的默认值规范在report这里不起作用,因为self此时未定义.我该如何提供这个价值?

Rob*_*rto 7

如果我理解你的问题,我通常会这样做:

def report(self, text = None):
    if text is None:
        text = self._defaultReportText
    return(text)
Run Code Online (Sandbox Code Playgroud)

(编辑:改if not textif text is None沃伦Weckesser的建议后.)