2024-06-27 02:19:57 发布
网友
有没有可能用python和接口的各种实现创建一个类接口。在
示例:我想为pop3访问(以及所有方法等)创建一个类。如果我使用的是商业组件,我希望包装它以遵守合同。在
将来,如果我想使用另一个组件或编写自己的代码,我希望能够交换这些组件,而不是将它们紧密地耦合在一起。在
可能吗?我是python新手。在
当然。在这种情况下也不需要创建基类或接口,因为一切都是动态的。在
对于具有强类型语言背景的人来说,Python不需要类接口。您可以使用基类来模拟它。在
class BaseAccess: def open(arg): raise NotImplementedError() class Pop3Access(BaseAccess): def open(arg): ... class AlternateAccess(BaseAccess): def open(arg): ...
但是您可以轻松地编写相同的代码,而无需使用BaseAccess。强类型语言需要在编译时进行类型检查的接口。对于Python,这是不必要的,因为所有内容都是在运行时动态查找的。Google 'duck typing'因为它的哲学。在
Python2.6中添加了一个抽象基类模块。但我还没用过。在
一种选择是使用zope interfaces。但是,正如Wai Yip Tung所说,您不需要使用接口来获得相同的结果。在
zope.interface包实际上更像是发现如何与对象交互的工具(通常是在具有多个开发人员的大型代码库中)。在
zope.interface
当然。在这种情况下也不需要创建基类或接口,因为一切都是动态的。在
对于具有强类型语言背景的人来说,Python不需要类接口。您可以使用基类来模拟它。在
但是您可以轻松地编写相同的代码,而无需使用BaseAccess。强类型语言需要在编译时进行类型检查的接口。对于Python,这是不必要的,因为所有内容都是在运行时动态查找的。Google 'duck typing'因为它的哲学。在
Python2.6中添加了一个抽象基类模块。但我还没用过。在
一种选择是使用zope interfaces。但是,正如Wai Yip Tung所说,您不需要使用接口来获得相同的结果。在
zope.interface
包实际上更像是发现如何与对象交互的工具(通常是在具有多个开发人员的大型代码库中)。在相关问题 更多 >
编程相关推荐