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中。我想如果你真的想的话,你可以重构你所有的代码来使用闭包和嵌套的作用域。不过,我建议只使用预期的语言结构。