使用内部定义的函数更新类变量

时间:2018-07-31 07:08:59

标签: python

我有这样的东西:

class updateMyNumber:
    def __init__(self, number):
        self.number = update_number(number)

    def update_number(self, number):
        self.number = number * 2

inst = updateMyNumber(5)

我收到以下错误:

  

NameErrorTraceback(最近通话最近)    在()中   ----> 1个实例= updateMyNumber(5)

     

in init ((自身,编号)         1类updateMyNumber:         2 def init (自身,号码):   ----> 3 self.number = update_number(数字)         4         5 def update_number(self,number):

     

NameError:名称'update_number'未定义

我希望inst返回25。定义类的最佳方法是什么?

注意:我不想写self.number =数字* 2

1 个答案:

答案 0 :(得分:3)

您应该调用self方法:

class updateMyNumber:
    def __init__(self, number):
        self.update_number(number)

    def update_number(self, number):
        self.number = number * 2

但在__init__ 内设置实例变量的更好方法,请阅读should-all-member-variables-be-initialized-in-init

所以我向您推荐:

class updateMyNumber:
    def __init__(self, number):
        self.number = self.update_number(number)

    def update_number(self, number):
        return number * 2