python模块导入中的继承vs类实例

She*_*ock 3 python oop inheritance module

抱歉,如果这没有意义,我不是一个经验丰富的程序员.

请考虑以下代码:

import mymodule

class MyClass:
    def __init__(self):
        self.classInstance = myModule.classInstance()
Run Code Online (Sandbox Code Playgroud)

然后 ......

from mymodule import classInstance

class MyClass(classInstance):
    def __init__(self):
        pass
Run Code Online (Sandbox Code Playgroud)

如果我只是想在MyClass中使用一个classInstance,是否可以从模块中导入特定的类并让MyClass继承这个类?

在决定这两种方法时,是否有任何最佳实践或我应该考虑的事项?

非常感谢

Dan*_*ero 6

请允许我提出一个不同的例子.

想象一下,有了Vector类.现在你想要一个Point Point.Point可以用向量定义,但也许它具有Vector没有的其他额外功能.在这种情况下,您从Vector派生Point.

现在你需要一个Line类.Line不是上述任何类的特化,因此您可能不希望从它们中的任何类派生它.但Line使用积分.在这种情况下,您可能希望以这种方式启动Line类:

class Line(object):
    def __init__(self):
        self.point1 = Point()
        self.point2 = Point()
Run Code Online (Sandbox Code Playgroud)

哪个点会是这样的:

class Point(Vector):
    def __init__(self):
        Vector.__init__(self)
Run Code Online (Sandbox Code Playgroud)

所以答案是真的:取决于你需要做什么,但是当你清楚地知道你编码的是什么时,在子类别之间进行选择之间的选择就变得很明显了.

我希望它有所帮助.