在许多网站上,我经常看到代码不是pythonic的评论,或者有更多的pythonic方法来实现相同的目标.
pythonic在这种情况下意味着什么?例如,为什么
while i < someValue:
do_something(list[i])
i += 1
Run Code Online (Sandbox Code Playgroud)
不是pythonic而是
for x in list:
doSomething(x)
Run Code Online (Sandbox Code Playgroud)
是pythonic?
Jam*_*mes 77
利用Python语言的特性来生成清晰,简洁和可维护的代码.
Pythonic意味着代码不仅能够正确地获得语法,而且还遵循Python社区的惯例,并以预期的方式使用语言.
这可能是最容易用负面的例子来解释,就像其他答案的链接文章一样.unpythonic代码的例子通常来自其他语言的用户,他们不是学习Python编程模式(如列表推导或生成器表达式),而是试图在C或java中更常用的模式中删除.循环是特别常见的例子.
例如在Java中我可能会使用
for i in (i; i < items.length ; i++)
{
n = items[i];
... now do something
}
Run Code Online (Sandbox Code Playgroud)
在Python中,我们可以尝试使用while循环复制它,但使用它会更干净
for i in items:
i.perform_action()
Run Code Online (Sandbox Code Playgroud)
或者,甚至是生成器表达式
(i.some_attribute for i in items)
Run Code Online (Sandbox Code Playgroud)
因此,当有人说某些东西是单声道时,他们说的是代码可以用更适合蟒蛇编码风格的方式重写.
import this在命令行输入可以概括Python原理.鲜为人知的是,源代码import this是明确的,并且通过设计,unpythonic!看看它是一个不该做的例子.
| 归档时间: |
|
| 查看次数: |
40537 次 |
| 最近记录: |