zoukankan      html  css  js  c++  java
  • Pythonic是什么?

    Python 之禅之中有这样几句话:

    优美胜于丑陋(Python 以编写优美的代码为目标)
    明了胜于晦涩(优美的代码应当是明了的,命名规范,风格相似)
    简洁胜于复杂(优美的代码应当是简洁的,不要有复杂的内部实现)
    复杂胜于凌乱(如果复杂不可避免,那代码间也不能有难懂的关系,要保持接口简洁)
    扁平胜于嵌套(优美的代码应当是扁平的,不能有太多的嵌套)
    间隔胜于紧凑(优美的代码有适当的间隔,不要奢望一行代码解决问题)
    可读性很重要(优美的代码是可读的)

    我想这应该可以大致解释一下 Pythonic 了。之前我在学习和写 Python 的时候, 都是在用我当初写 Java 的那些东西。丝毫没有一点 Python 特有的感觉, 感觉就像在写 Java 代码,只不过在使用 Python 的 语法复制一遍,直到今天我看见了这样的Pythonic。明白了这才是 Python 。

    Python 快排。

     1 def quick_sort(array):
     2     if len(array) <=1:
     3         return array
     4     left, right = [], []
     5     avg = array.pop()
     6     for x in array:
     7         if x >= avg:
     8             right.append(x)
     9         else:
    10             left.append(x)
    11     return quick_sort(left) + [avg] + quick_sort(right)

    在对比一下我之前写的快排 https://www.cnblogs.com/JulyShine/articles/10017886.html 。四个字, 不忍卒读,感觉自己就是个傻子,在交换两个数时,我这样写的:

    交换 a, b
    
    test = a
    a = b
    b = test
    
    Pythonic:
    
    a, b = b, a
    
    .....

    唉, 我脑壳疼。。。,从来没想到过啊。。。

    ps:

    学无止境,且行且珍惜, 与君共勉!

  • 相关阅读:
    网页中嵌入百度地图
    第一篇博客, 感谢博客园
    Flask-Migrate插件
    基于airtest-selenium的UI自动化测试
    自动化测试中如何解决图片验证码问题
    Linux下搭建自动化测试环境
    python3中使用subprocess模块执行外部命令
    微信小程序自动化实战(一)
    python3中使用objectpath模块处理Json对象
    Pytest中如何解决测试用例的依赖执行问题
  • 原文地址:https://www.cnblogs.com/JulyShine/p/10061131.html
Copyright © 2011-2022 走看看