python語法糖


  語法糖指那些沒有給計算機語言添加新功能,而只是對人類來說更“甜蜜”的語法。語法糖往往給程序員提供了更實用的編碼方式,有益於更好的編碼風格,更易讀。不過其並沒有給語言添加什么新東西。

  舉個例子:在C語言里用a[i]表示*(a+i),用a[i][j]表示*(*(a+i)+j),這種寫法簡潔明了,也更好懂了。

  實際上從面向過程到面向對象也是一種語法糖啊,C語言可以通過它的指針、類型轉換,結構實現面向對象的編程風格,但是C++更進一步的推廣了這種風格,更好用了,不過到了C#把OO的風格發揮得淋漓盡致。OO的編程風格對於面向過程來說是不是一種語法糖呢?如果生硬地照此理解,只有計算機硬件指令才不算語法糖,而其他一切利用編譯器、匯編器將代碼抽象,和自然語言更相近的手段都算語法糖。

  舉些例子吧:
  1、 c = [b,a][a>b] 取兩個中的最大值
  2、lambda、filter、map、reduce函數
  3、 list1=[2*x+1 for x in range(10)]
  4、對列表 lst = [1, -2, 10, -12, -4, -5, 9, 2]實現排序,按照正的放前面,負的放后面,並且分別按絕對值從小到大。即輸出:
    [1, 2, 9, 10, -2, -4, -5, -12] 
   方法是:lst.sort(key=lambda x: (x < 0, abs(x)))
   等同於:lst.sort(key=lambda x: abs(x))--->lst.sort(key=lambda x: x < 0)
  5、裝飾器


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM