gpt4 book ai didi

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

转载 作者:行者123 更新时间:2023-12-01 02:30:12 24 4
gpt4 key购买 nike

PyCharm 给了我一个提示这个方法可能是静态的。嗯,我知道。但我应该吗?

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

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

最佳答案

如果一个方法不与self交互,我会将其设为@staticmethod。特别是对于公共(public) 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()

显然这是一门愚蠢的类(class),但希望你明白了。事实上,在现实世界的应用程序中,我会将 get_buffersize 设置为 Filebuffersize 属性。

关于python - 在 Python 中尽可能将方法定义为静态是否有优势?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/46914572/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com