我已经编写了这个类,其中包含大量变量,我需要能够随时重置为默认值。最初,我在
__init__
中“声明”并初始化了这些变量(就像你似乎能够在Python中声明的那样),但这带来了一个问题,当我想要一个外力将这些变量设置为默认值时,我会重复三十多行代码(因为类有大约三十个变量)。
我在这里看到了另一篇文章描述了类似的问题,但接受的答案是将每个变量设置为 None,然后您可以从类中的函数访问它们,而不会出现问题。
在 C++ 中,您可以将这些变量声明为标头中的变量,然后您可以在实例化时以及调用
class_name.set_to_default()
时调用相同的函数,这一切都简单而整洁。
当然有一种方法可以在 Python 中执行相同的操作,并且每个变量都不会出错吗?比如:
class Motor():
def __init__(self):
self.reset_all_values()
def reset_all_values(self):
self.speed_value = DEFAULT_SPEED_VALUE
self.hours_value = DEFAULT_HOURS_VALUE
# etc.
如果是这样,我怎样才能做到这一点而不让 PyCharm 对我发牢骚?
或者我只需要在代码中写得非常冗长? Python 是否与其他语言差异太大,你必须以完全不同的方式思考?
将字段定义为类主体中的注释,以告诉 PyCharm(和您的读者)您打算让这些字段存在(使用给定的类型)。
class Motor:
speed_value: float
hours_value: float
def __init__(self):
self.reset_all_values()
def reset_all_values(self):
self.speed_value = DEFAULT_SPEED_VALUE
self.hours_value = DEFAULT_HOURS_VALUE