Python 是什么意思?

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

Python 在这个上下文中是什么意思? 例如,为什么

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

而不是蟒蛇

for x in list:
doSomething(x)

是蟒蛇的吗?

90898 次浏览

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

Python 意味着代码不仅能够得到正确的语法,而且能够遵循 Python 社区的约定,并按照预期的方式使用语言。

这可能是最容易解释的负面例子,如在链接文章从其他答案。非 Python 代码的例子通常来自其他语言的用户,他们不学习 Python 编程模式,如列表理解或生成器表达式,而是试图挖掘 C 或 Java 中更常用的模式。循环是这方面特别常见的例子。

例如,在 Java 中,我可能使用

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

在 Python 中,我们可以尝试使用 同时循环来复制它,但是使用它会更简单:

for item in items:
item.perform_action()

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

(item.some_attribute for item in items)

因此,本质上,当有人说某些东西是非 Python 的,他们是说,代码可以重写的方式,是一个更好地适合 Python 的编码风格。

在命令行中键入 import this将提供 Python 原则的摘要。不太为人所知的是,import this的源代码是明确的,而且根据设计,非 Python 的!看一下这个例子,告诉你什么是不应该做的。