【发布时间】:2017-08-13 11:54:59
【问题描述】:
我正在阅读有关静态变量(即类变量)、静态方法、类方法以及所有这些的细微差别的内容。在 C++ 等语言中,static variables are generally strongly discouraged because of many IMO compelling reasons。我只是好奇,如果 Python 社区对不鼓励使用静态变量有一个已知的立场。 The Google Python Style Guide does not seem to have a pro/con position on static variables.
在 Python 语言中,是否不鼓励使用静态变量(即代码味道不好)?
Google C++ 风格指南的声明“[静态变量] 导致难以发现的错误”似乎不仅适用于 C++ 语言,也适用于 Python 语言。
【问题讨论】:
-
该链接讨论具有静态存储持续时间的类类型变量,而不是静态变量。这包括全局变量和
static标记的本地变量。 -
这可能太基于意见了。但我认为一般来说,虽然肯定有有效的用例,但您通常需要一个实例属性。
-
在 Python 中指定的初始化顺序比在 C++ 中要精确得多。虽然它仍然有些不确定,但您通常可以确保不会发生 C++ 问题,只要您没有循环导入。
标签: python static static-methods static-variables