pythonic是什么意思?

乔恩

在许多网站上,我经常看到这样的评论:代码不是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] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章