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] 删除。
我来说两句