我有这样的东西:
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
答案 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