Python-将对象属性作为其功能之一的默认值

时间:2019-01-10 16:13:22

标签: python

我想知道在python中达到此目的最干净的方法是什么

class A():
    def __init__(self, def_val):
        self.def_val=def_val
    def ciao(self, parameter=self.def_val):
        print(parameter)

当然上面的内容给了我: “ NameError:未定义名称'self'”

1 个答案:

答案 0 :(得分:2)

我认为解决方案是这样的:

class A():

    def __init__(self,def_val):
        self.def_val=def_val

    def ciao(self, parameter=None):
        if parameter is None: parameter = self.def_val
        print(parameter)

它有效,并且可能是最Python化的方式

In  [1]: a=A("Hi")

In  [2]: a.ciao("ehi")
Out [2]: 'ehi'

In  [3]: a.ciao()
Out [3]: 'Hi'