这是一个关于哪一种方法会被认为是最毕达通的问题。我不是在寻找个人意见,而是,什么是惯用的。我的背景不是Python,所以这将对我有帮助。
我正在处理一个Python 3项目,它是可扩展的。这个想法与工厂模式相似,只是基于功能。
本质上,用户将能够创建一个定制函数(跨包和项目),我的工具可以定位并动态调用该函数。它还可以使用currying传递参数(但这里不包括该代码)。
我的目标是要遵循好的毕达通实践。我在两种策略之间左右为难。而且,由于Python不是我的专长,我想知道以下实践的优缺点:
.__subclasses__()在引擎盖下的使用对消费者来说也是不可思议的。但是,即使是Java也可以用来搜索带有注释的类。发布于 2018-06-28 00:07:43
这个问题没有答案。
Python所提倡的唯一标准实践是PEP 8。
PEP 8与更高层次的“设计模式”问题几乎没有什么关系,特别是与你的具体问题无关。
而且,即使是这样,PEP 8显然只是“主要Python发行版中包含标准库的代码”的一个指南,Guido拒绝了让它成为应该在每个Python项目上强制执行的某种广泛标准的建议。
另外,这也使我们明白了这只是一个准则,而不是一个僵硬的建议的观点。
当然,选择一种设计而不是另一种设计是有主观原因的。
理想情况下,这些主观的原因通常是由社区对什么是“惯用”或"pythonic“的共识驱动的。但是,社区共识并没有作为你可以引用的一些客观来源而被记录下来。
也许有一些争论对Python的禅宗有吸引力,但这本身就是提姆·彼得斯试图将吉多自己的主观准则提炼成一组简洁的声音片段,而不是一个客观的来源。(任何人只要简单地看一看,例如,python-ideas列表,就会发现几乎任何问题的双方都可以吸引禅宗…)
https://stackoverflow.com/questions/51072941
复制相似问题