python - 使用 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
解决方案
您应该调用该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
推荐阅读
- php - 为什么我不能在 MongoDB 文档中存储关联数组?
- python - 深入 dirs\sub-dirs 查找特定文件名
- node.js - 使用 Cheerio 获取 XML 文档中的所有标签
- xquery - 如何计算具有两个“限制”的元素?
- xml - 如何获取 xml 文件中特定值的值?
- node.js - 许多有序队列 - 如何在应用程序实例之间自动重新平衡流?
- c++ - 为什么我的类对象会导致未声明的标识符错误?
- sml - 在 Trie 中插入值
- python - 使用 argparse 解析多个相同的参数组
- kubernetes - 如果它依赖于另一个服务端点,如何创建 Kubernetes 端点