gpt4 book ai didi

python - vba 中的模块与面向对象编程

转载 作者:太空狗 更新时间:2023-10-30 00:52:18 30 4
gpt4 key购买 nike

我的第一个“严肃”语言是 Java,所以我理解面向对象编程,因为程序的基本 block 是一个类。现在我在 VBA 和 Python 上写作。有模块语言,我一直感到不适:我不知道我应该如何在模块/类中分解程序。

我理解一个模块对应一个知识领域,一个模块应该可以单独测试...我应该只将模块理解为命名空间(C++)吗?

最佳答案

我不使用 VBA,但在 Python 中,模块是基础。正如您所说,可以将它们视为 namespace ,但它们本身也是对象。但是它们不是类,因此您不能继承它们(至少不能直接继承)。

我发现让一个模块只关注一个领域是一个很好的规则。我用来决定某个东西是模块级函数还是类方法的规则是问自己它是否可以有意义地用于任何满足其参数所采用的“接口(interface)”的对象。如果是这样,那么我将它从类层次结构中释放出来,并使它成为一个模块级函数。如果它的用处确实仅限于特定的类层次结构,那么我将其设为方法。

如果您需要它在类层次结构的所有实例上工作,并使它成为模块级函数,请记住所有子类仍然需要使用给定的语义实现给定的接口(interface)。这是放弃方法的权衡之一:您不能再进行微小的修改并调用 super。另一方面,如果子类可能会重新定义接口(interface)及其语义,那么特定的类层次结构可能不是一个很好的抽象,应该重新考虑。

关于python - vba 中的模块与面向对象编程,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3607020/

30 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com