Python 使用self中定义的函数更新类变量

Python 使用self中定义的函数更新类变量,python,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(最近一次呼叫上次) 在() ---

我有这样的想法:

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 inst=updateMyNumber(5)

init(自身,编号) 1类updateMyNumber: 2 definit(自身,编号): ---->3 self.number=更新编号(编号) 4. 5 def更新编号(自身,编号):

名称错误:未定义名称“更新编号”

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


注意:我不想写self.number=number*2您应该调用
self
方法:

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

    def update_number(self, number):
        self.number = number * 2
但是在
\uuu init\uuuu>
中设置实例变量的更好方法,请阅读

因此,我建议你:

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

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

您应该调用
self
方法:

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

    def update_number(self, number):
        self.number = number * 2
但是在
\uuu init\uuuu>
中设置实例变量的更好方法,请阅读

因此,我建议你:

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

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

“注意:我不想写self.number=number*2”,然后使用另一种语言。显式的
self
将留在Python中。我想如果你真的想的话,你可以重构你所有的代码来使用闭包和嵌套的作用域。不过,我建议只使用预期的语言结构。“注意:我不想写self.number=number*2”,然后使用另一种语言。显式的
self
将留在Python中。我想如果你真的想的话,你可以重构你所有的代码来使用闭包和嵌套的作用域。不过,我建议只使用预期的语言结构。