私がクラスを作成するのはよくあることですが、そのクラスに密接に関連しているヘルパー関数も一緒に作成します。私のWindow
現在のところ、いくつかの呼び出しをラップするクラスとwin32api
、たとえばウィンドウを見つけるための関数。それらのヘルパー関数は、指定されたモジュールのグローバルであるか、クラスのクラスメソッドである必要がありますWindow
。つまり、モジュールに次のように含める必要があります。
class Window(object):
def __init__(self, handle):
self.handle = handle
...
...
@classmethod
def find_windows(cls, params):
handles = ...
return map(cls, handles)
使用法は次のとおりです。
from window import Window
windows = Window.find_windows("Specialty")
または私がすべきこと:
class Window(object):
def __init__(self, handle):
self.handle = handle
...
...
def find_windows(params):
handles = ...
return map(Window, handles)
使用法は次のとおりです。
from window import Window, find_windows
windows = find_windows("Speciality")
もっと簡潔に言えば、グループ化はクラスレベル(たとえば、Javaの静的メソッド)にする必要がありますか、それともモジュールレベルにする必要がありますか?