我正在阅读关于静态变量(即类变量)、静态方法、类方法以及所有这些的细微差别。在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语言中,是否不鼓励使用静态变量(例如,有不好的代码气味)?
<>谷歌C++风格指南的声明“[静态变量]导致很难找到bug”,这似乎不仅对C++语言,而且对Python语言都是正确的。在
在某些语言中,如Java,静态变量可能会导致可测试性问题,因为它们不容易被模拟出来。在Python中并不是这样。在
但是,静态变量和类变量的好处较少,因为当您拥有不需要访问特定实例的成员的值或函数时,您只需在模块级定义它们,并在不引用Java等语言中不可用的类a奢侈品的情况下使用它们。在
{cd1>中的气味并不是这样说的。但是如果你有一半的变量是
static
,那么我会问一些关于你对OO设计的理解的问题。在Python没有静态存储持续时间的变量。它甚至没有存储期限。它具有(模块)全局变量和静态变量,但它们的初始化顺序比C++更精确地定义。除非有循环导入,否则C++问题不太可能发生,即使这样,循环导入也是问题,而不是全局变量或静态变量。在
也就是说,可变的全局状态,例如在程序过程中发生变化的全局变量或静态变量,对language-independent reasons是不利的。这是C++与静态存储持续时间的问题完全不同的关注点。你不想改变的全局变量和静态变量通常都很好。在
相关问题 更多 >
编程相关推荐