【问题标题】:What does Pythonic mean? [closed]是什么意思? [关闭]
【发布时间】:2014-09-20 13:48:26
【问题描述】:

在许多网站上,我经常看到 cmets 代码不是 Python 的,或者有一种更 Python 的方式来实现相同的目标。

pythonic 在这种情况下是什么意思?例如,为什么是

while i < someValue:
   do_something(list[i])
   i += 1

不是pythonic,而

for x in list:
   doSomething(x)

是pythonic吗?

【问题讨论】:

标签: python


【解决方案1】:

利用 Python 语言的特性生成清晰、简洁和可维护的代码。

Pythonic 意味着代码不仅语法正确,而且遵循 Python 社区的约定,并以预期的方式使用语言。

这可能是最容易用反面例子来解释的,就像其他答案中的链接文章一样。非 Python 代码的示例通常来自其他语言的用户,他们不是学习 Python 编程模式(如列表推导或生成器表达式),而是试图撬开 C 或 java 中更常用的模式。循环是这方面特别常见的例子。

例如在 Java 中我可能会使用

for(int index=0; index < items.length; index++) {
     items[index].performAction();
}

在 Python 中,我们可以尝试使用 while 循环来复制它,但使用起来会更干净

for item in items:
  item.perform_action()

或者,甚至是生成器表达式

(item.some_attribute for item in items)

所以本质上,当有人说某事不符合 Python 标准时,他们是在说可以以更适合 Python 编码风格的方式重写代码。

在命令行输入 import this 可以总结 Python 的原理。鲜为人知的是import this 的源代码显然是非pythonic 的!看看它,看看不该做什么的例子。

【讨论】:

猜你喜欢
  • 2010-12-29
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2014-04-03
  • 2013-05-16
  • 2011-04-03
  • 2022-01-23
  • 1970-01-01
相关资源
最近更新 更多