2017-10-24 16 views
1

PyCharmは私にヒントを与えますthis method may be static。まあ、私は知っている。しかし私はすべきですか?は、可能な限りPythonで静的メソッドを定義する利点がありますか?

C++では、メソッドの静的メソッドを定義していましたが、その理由は主にメソッドを使用したくない場合や、カウンターのようなすべてのインスタンスの共通データを持つことが主な理由でした。 Pythonのケースは何ですか?

私が見つけた答えは、それは、メモリを節約すると言うが、私は量が、それはコーディングスタイルに影響を与えなければならないようになっているとは思いません。この方法は、selfと相互作用しない場合

答えて

2

、私はそれ@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_buffersizeFilebuffersize財産を作ると思います。

関連する問題