子类可以在Python中与父文件分开吗?

时间:2017-06-14 10:21:58

标签: python python-3.x oop

我目前有一个父抽象类,它有许多继承它的子类。基本结构如下所示:

import sqlite3
import os
from abc import ABCMeta, abstractmethod

class ParentClass(object):
        """DOCSTRING"""
        __metaclass__ = ABCMeta

        def __init__(self, base_path, state_name):
        ... other methods etc

class ChildClass1(ParentClass):

        def __init__(self, base_path):
        """DOCSTRING"""
            state_name = 'chromosome'
            super().__init__(base_path, state_name)

        ...other methods etc

class ChildClass2(ParentClass):

        def __init__(self, base_path):
        """DOCSTRING"""
            state_name = 'ftszRing'
            super().__init__(base_path, state_name)

       ...other methods etc

...other child classes that all inherit from the abstract parent class.

对我而言,将此代码拆分为文件更有意义: parent_class.py child_class1.py child_class2.py child_class3.py 等等

我可以这样做,只需将父类导入子类,但拥有父模块没有意义。父类是抽象的,拥有父实例是没有意义的。另外,我喜欢当前继承的方式,导入父类似乎会改变它。

基本上可以将此代码拆分为如上所述的文件,而无需对代码进行重大更改?我能弄清楚如何做到这一点的唯一方法是在每个文件中都有父类,但这似乎并不“正确”....

1 个答案:

答案 0 :(得分:3)

您可以将父类与子类分开,并在任何您想要的位置。但唯一的办法是确保在使用之前先在子模块中导入父类。