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:

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

  • 相关阅读:
    三级菜单的实现方式
    简单登录接口实践
    C++中的set和java的hashset有何区别?
    css 利用文档结构给列表添加样式
    谈谈我对JS中this的理解
    谈谈我对JS原型的理解
    使用node.js,实现简单的JS文件合并小工具
    谈谈我对JS闭包的理解
    谈谈我对JS作用域的理解
    模拟实现 百度翻译 右下方的可折叠的分享按钮列表
  • 原文地址:https://www.cnblogs.com/JulyShine/p/10061131.html
Copyright © 2011-2022 走看看