我有原始类(DownloadPage),我只需添加一个简单功能(get_info)。在OOP中有什么更好的方法?
def get_info(page): # make simple function
...
result = get_info(DownloadPage())
或
class MyDownloadPage(DownloadPage): # make new class with inheritance
def get_info(self): # with one method
...
result = MyDownloadPage().get_info()
由于
答案 0 :(得分:3)
答案真正取决于您是否希望get_info
函数/方法可以对MyDownloadPage
以外的其他内容起作用。目前,我会选择免费功能,但当需求以某种方式固化时,无论如何都应该很容易转换您的解决方案。
(我更喜欢自由函数,因为它不限制可以传递给它的东西,任何只依赖于另一个对象的公共接口的函数应该是一个减少耦合的函数。)
答案 1 :(得分:2)
由于从一个解决方案到另一个解决方案的距离很小,因此几乎不会对一个解决方案产生影响。
只要你有两个函数,我就会说派生类更易于维护。
一旦两个函数想要共享一个共同的值,比如记录器或配置变量,那么你会看到更多的好处。
答案 2 :(得分:1)
这可能是异端,为什么不将它作为一种方法添加到现有的类中呢?
def get_info(self):
...
DownloadPage.get_info = get_info
我意识到这不完全是标准做法,但我很想知道Python专家解释为什么不这样做。