Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/oop/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python 有没有更好的方法用继承来构造代码?_Python_Oop_Inheritance - Fatal编程技术网

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
目录中可能更有意义