python - 多重继承与多重导入语句之间是否存在性能差异?
问题描述
以下场景:假设我有一个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 需要来自 classDataInput
和 class的方法Func1
,而 Script B 需要来自 classDataOutput
和 class的方法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) 定义一个从类具有多重继承的类DataInput
,并且Func1
这样的一个实例具有已经继承的方法
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 方法。虽然,我有兴趣评估这两种可能性。
解决方案
推荐阅读
- java - 带有方法的 Java 继承
- postgresql - 如何为 dblink 注入凭据?Postgres
- mysql - 如何在spring boot中获取所有具有公共字段的字段
- mongodb - 未填充 2 级对象中的 mongoose ref
- javascript - Shopify 在添加产品时打开 Ajax 购物车而不是重定向到购物车
- go - 使用更广泛的方法签名实现接口
- python - 将日期时间生成器对象转换为日期字符串列表
- reactjs - mui-datatables customBodyRender tableMeta 所有数据
- subdomain - 在 Marketing Cloud 中设置与 SAP 相同的子域,同时将其用于不同的营销平台是否存在问题?
- ansible - 主机上的任务调用之间的 Ansible 暂停