多个继承与多个import语句之间在性能上有区别吗?

时间:2018-10-10 15:07:16

标签: python python-3.x oop

以下情况:假设我有一个toolbox程序包,它是像这样设置的

toolbox/
__init__.py
io/
    __init__.py
    input.py         # Contains DataInput class with method read_txt_file()
    output.py        # Contains DataOutput class
functionalities/
    __init__.py
    func1.py     # Contains class Func1 with method calculate()
    func2.py     # Contains class Func2

每个*.py文件将包含一个类,其中定义了多个方法。它必须用作多个脚本/程序的工具箱,而这些脚本/程序仅需要其中定义的某些功能(例如,脚本A需要来自类DataInput和类Func1的方法,而脚本B需要来自DataOutput类和Func2类,等等...)

现在将有两种可能性来收集所需的方法(在这种情况下,方法为read_txt_file()calculate()):

1)从模块导入类

from toolbox.io.input import DataInput
from toolbox.io.functionalities.func1 import Func1

obj1 = DataInput()
obj1.read_txt_file()
obj = Func1()
obj.get_data(obj1)           # Some getter method defined in Func1
obj.calculate()

2)从类DataInputFunc1定义一个具有多个继承的类,以使该类的实例具有已经继承的方法

import toolbox.io.input
import toolbox.functionalities.func1

class MyClass(toolbox.io.input.DataInput, toolbox.io.functionalities.func1.Func1):
    pass

obj = MyClass()
obj.read_txt_file()
obj.calculate()

在两种情况下,文本文件中的数据均已读取,计算并封装在obj中。

问题是:就性能(运行时,内存等)而言,首选的可能性是什么?

脚注:我确实知道Pythonistas讨论了数据封装和getter / setter方法。虽然,我对两种可能性的评估感兴趣。

0 个答案:

没有答案