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

A11*_*122 1 python

我有这样的事情:

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

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

inst = updateMyNumber(5)
Run Code Online (Sandbox Code Playgroud)

我收到以下错误:

NameErrorTraceback(最近一次调用最后一次) in () ----> 1 inst = updateMyNumber(5)

init (self, number) 1 class updateMyNumber: 2 def init (self, number): ----> 3 self.number = update_number(number) 4 5 def update_number(self, number):

NameError:名称“update_number”未定义

我想要inst返回25。定义类的最佳方式是什么?

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

小智 6

你应该调用该self方法:

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

    def update_number(self, number):
        self.number = number * 2
Run Code Online (Sandbox Code Playgroud)

但在内部__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
Run Code Online (Sandbox Code Playgroud)