首页 > 解决方案 > 使用 self 中定义的函数更新类变量

问题描述

我有这样的事情:

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

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

inst = updateMyNumber(5)

我收到以下错误:

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

init (self, number) 1 类 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

标签: python

解决方案


您应该调用该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

推荐阅读