我经常编写一个类,以及与该类密切相关的辅助函数。对于我目前的情况,一个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 中的静态方法)还是在模块级别?