在 Python 中尽可能将方法定义为静态方法是否有优势?

PyCharm 给了我一个提示this method may be static嗯,我知道。但我应该吗?

在 C++ 中,只有当我有充分的理由时,我才会定义一个静态方法,主要是想使用不与任何实例一起使用的方法,或者为所有实例使用公共数据,如计数器。Python中的情况是什么?

我找到的一个答案说它可以节省内存,但我认为数量不会影响编码风格。

丹尼尔

如果一个方法不与 交互self,我会做它@staticmethod特别是对于公共 API,如果一个方法不是静态的,那么它可能会令人困惑。

例如:

class File(object):
    BUFFERSIZE = 65536

    def __init__(self, path):
        self.path = path
        self.descriptor = None

    @staticmethod
    def get_buffersize():
        return File.BUFFERSIZE

    def open(self, mode):
        self.descriptor = open(self.path, mode)

    def close(self):
        self.descriptor.close()

显然是一个愚蠢的课程,但你明白了,希望如此。事实上,在现实世界的应用程序,我会做get_buffersize一个buffersize财产File

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章

如何在Python中为指定的函数减少尽可能小的字符

在Python中使用静态方法有什么优势?

python中是否有可能将列值输出为文件名?

在哪里可以找到python中类的方法定义?

有没有办法让嵌套循环尽可能多地循环(python)?

使用尽可能少的代码将非静态方法包装到带有“ this”参数绑定的std :: function中

Python:尽可能有效地利用Trig函数估算Pi

如何让python从列表中返回我想要的尽可能多的谜语

Python:从排序数组中采样 n 个数字,确保它们彼此尽可能远离

在python3中将整数划分为“尽可能对称的数组”

在python 3中输入尽可能多的给定数字

将Python浮点值增加尽可能小的数量

如何使Python生成器尽可能快?

加速 python 3.5 循环以尽可能快地运行它

Python中的静态方法?

插入到方法中的数据是否应尽可能原始?

尽可能有效地在Python中进行叠加混合模式(Numpy,OpenCV)

如何让Selenium通过HTML中的属性识别按钮,并在python中尽可能自动单击它

在Python中,赋值运算符在类方法定义中作为默认值传递时是否访问类或实例变量?

在实例化时强制抽象方法定义的Python基类

在 python 类中为静态方法添加类型

在 python 类中为静态方法添加类型

在Python中,是否可以从静态方法引用实例变量?

如何编写与Python 3.x尽可能兼容的Python 2.x?

如何编写与Python 3.x尽可能兼容的Python 2.x?

在 Python 中,是否有任何功能可以检查子类是否定义了方法而不是超类

在python中重写静态方法

在python中调用静态方法

在python中传递静态方法