Python中的构造函数和方法有什么不同,我可以将它们混合在一起吗?

2024-06-26 19:37:35 发布

您现在位置:Python中文网/ 问答频道 /正文

我实现了一个如下所示的可插入框架。在

它可以工作,但我对Plugin2的实现感到困惑。它似乎使用普通方法而不是类构造函数。在

我可以吗?有什么缺点吗?在

这是正常使用的“图案”吗?如果是,图案名是什么鸭子打字?我应该避免这样的用法吗?在

更新:我关心的是以下方法:

def addPlugin(name, plugin)

现在参数插件可以是类或方法。对于插件开发人员来说,这有点晦涩难懂。这是动态编程语言世界中常见的情况吗?在

^{pr2}$

Tags: 方法name插件框架用法参数开发人员def
2条回答

Plugin2是一个模块函数,它返回一个对象,而Plugin1是一个类本身并返回自身的实例化。在

这很好,尽管Python推荐的编码标准会使用小写函数名(http://www.python.org/dev/peps/pep-0008/),所以它是插件2

为了保持一致性,我还为plugin1使用了一个模块函数来保持类似,以防实现的发展。在

这是一种常用的模式,称为factory function。最好让接口对任何返回对象的可调用对象开放,无论该可调用对象是函数还是类。它能让你灵活应对将来想做的任何事。在

相关问题 更多 >