在许多网站上,我经常看到这样的评论:代码不是pythonic,或者有更多的pythonic方法可以实现相同的目标。
在这种情况下,pythonic是什么意思?例如,为什么
while i < someValue:
do_something(list[i])
i += 1
不是pythonic
for x in list:
doSomething(x)
是pythonic吗?
利用Python语言的功能来生成清晰,简洁和可维护的代码。
Pythonic意味着代码不仅会正确使用语法,而且会遵循Python社区的约定,并以预期使用的方式使用该语言。
这可能是最容易用否定的例子来解释的,如链接文章中其他答案所示。非Python代码的示例通常来自其他语言的用户,他们没有学习Python编程模式(例如列表推导或生成器表达式),而是尝试使用C或Java中更常用的模式。循环是这种情况的特别常见示例。
例如在Java中,我可能会使用
for i in (i; i < items.length ; i++)
{
n = items[i];
... now do something
}
在Python中,我们可以尝试使用while循环复制它,但是使用起来会更干净
for i in items:
i.perform_action()
甚至是生成器表达式
(i.some_attribute for i in items)
因此,从本质上讲,当有人说某些内容与Python无关时,他们就是说可以采用更适合python编码风格的方式来重写代码。
import this
在命令行中键入可总结Python原理。鲜为人知的是,它的源代码import this
是确定的,而且是设计使然的,是非Python的!看看它是不执行操作的示例。
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句