gpt4 book ai didi

python - Pythonic 是什么意思?

转载 作者:IT老高 更新时间:2023-10-28 21:37:54 27 4
gpt4 key购买 nike

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

Pythonic 在这种情况下意味着什么?例如,为什么是

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

不是 Pythonic 而

for x in list:
doSomething(x)

是 Pythonic 的吗?

最佳答案

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

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

这可能是最容易用反面例子来解释的,就像其他答案中的链接文章一样。非 Pythonic 代码的示例通常来自其他语言的用户,他们没有学习 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)

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

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

关于python - Pythonic 是什么意思?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25011078/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com