Python 有没有更好的方法用继承来构造代码?
我的代码组织如下:Python 有没有更好的方法用继承来构造代码?,python,oop,inheritance,Python,Oop,Inheritance,我的代码组织如下: run_experiment.py base_model.py models/ model_1.py model_2.py ... 每个模型都继承自base\u模型。代码始终从run\u experiment.py运行,它实例化了如下模型: from importlib import import_module def run_experiment(module_name, model_name): model = getattr(import_mod
run_experiment.py
base_model.py
models/
model_1.py
model_2.py
...
每个模型都继承自base\u模型
。代码始终从run\u experiment.py
运行,它实例化了如下模型:
from importlib import import_module
def run_experiment(module_name, model_name):
model = getattr(import_module("models." + module_name), model_name)()
...
if __name__ == "__main__":
run_experiment('model_1', 'ModelOne')
from base_model import BaseModel
class ModelOne(BaseModel):
...
模型类如下所示:
from importlib import import_module
def run_experiment(module_name, model_name):
model = getattr(import_module("models." + module_name), model_name)()
...
if __name__ == "__main__":
run_experiment('model_1', 'ModelOne')
from base_model import BaseModel
class ModelOne(BaseModel):
...
请注意,我的linter将第一次导入标记为丢失,因为base\u model
与model\u 1.py
不相邻(因此它应该是from.base\u model import BaseModel
),但它只在没有句点的情况下工作,因为代码从上面的目录运行(run\u experiment.py
)
整个结构感觉太复杂了。有没有更好的、更像蟒蛇的方法
(从codereview.stackexchange移动,因为此代码不完整。)它不应该是来自..base_model import BaseModel的
,因为它位于上面的目录中吗?如果base\u model.py
位于models
目录中,可能更有意义,因为它不应该是from..base\u model import BaseModel
,因为它位于上面的目录中吗?不过,base\u model.py
位于models
目录中可能更有意义