Using isinstance() versus duck typing
我正在编写一个与
为此,我计划使用
我的问题是:在使用
我已经读过了,我通常应该对接口进行编码,但是在本例中,接口的功能与所需的不同。
为什么不编写两个单独的函数,一个将输入视为颜色映射,另一个将输入视为颜色?这将是处理问题的最简单方法,并且可以避免意外,并为将来扩展功能留出空间。
这有点主观,但我会说:一般来说,这不是一个好主意,但是在这里,当你区分一个容器和一个类的实例是适当的(特别是当,比如说,那些类本身可能是不可测的,比如元组或字符串,并且这样做的时候,duck输入会变得相当棘手)。
旁白:通常建议对接口进行编码,但它比Python更适用于Java风格的静态语言,其中接口不存在,除非您对抽象基类和EDCOX1 0位模块等进行计数(更深入地讨论Python版本中的"针对接口的代码,而不是对象")。
很难说没有更多的细节,但听起来你比任何事情都更接近于在这里建立一个外观,因此你应该可以自由地使用自己的(更整洁/更紧密/不同)API,将用户与底层实现(matplotlib)隔离开来。