精品欧美一区二区三区在线观看 _久久久久国色av免费观看性色_国产精品久久在线观看_亚洲第一综合网站_91精品又粗又猛又爽_小泽玛利亚一区二区免费_91亚洲精品国偷拍自产在线观看 _久久精品视频在线播放_美女精品久久久_欧美日韩国产成人在线

旁觀者清 Python與Ruby各有千秋

原創
開發 后端 前端
文章客觀的分析了Python與Ruby在某些方面的差異。盡管原文作者比較喜歡Python,但作者還是比較客觀理性的這兩種主流的動態語言進行了比較,應該說兩種語言各有優勢。

【51CTO獨家特稿】關于Ruby和Python之間的對比在網上有太多的口水,但我卻沒有發現真正有用的討論,因為大家總是圍繞雙方的功能差異進行爭辯,這樣下去顯得毫無意義,其實該有的雙方都會有,要不然有一方肯定早已被另一方消滅。

51CTO推薦閱讀:Python線程編程比Ruby應用的優點

雖然我個人更喜歡Python,但并不代表Python就比Ruby功能要多,要比Ruby強大,也無法教唆其他人也跟我一樣選擇Python,因為每個人的口味都不一樣。因此,客觀地列出雙方的不同點能夠有效地避免大量的口水之爭,注意我們不談語法上的差異,那完全沒有意思,另外,如果你覺得本文列出的項目有帶有主觀色彩的,你也可以談談你的看法。

Ruby在類主體中有類引用

在Ruby中,你可以引用類主體中的類(self),在Python中就不行。Ruby代碼示例:

  1. class Kaka  
  2.   puts self  
  3. end 

這里的self是一個類,上面這串代碼將會輸出“KaKa”,在Python中,沒有辦法輸出類名或從類定義主體中訪問類。

Ruby中的所有類都是可變的

它允許你為核心類開發擴展,下面是一個rails擴展示例:

  1. class String  
  2.   def starts_with?(other)  
  3.     head = self[0, other.length]  
  4.     head == other  
  5.   end  
  6. end 

Python(假設沒有’’.startwith方法):

  1. def starts_with(s, prefix):  
  2.     return s[:len(prefix)] == prefix 

你可以在任何序列(不只是字符串)上使用它,但必須明確地導入它,如:

  1. from some_module import starts_with
  2.  

Ruby有類似Perl的腳本功能

Ruby有一個regexps類,$-變量,awk/perl逐行輸入循環和其它功能使它更適合編寫小型shell腳本。

Ruby有類延續

Ruby有這個特性都是得益于callcc語句。在Python中,你可以用多種不同的技術創建延續,但語音本身并沒有內置支持這項特性。

Ruby有塊

使用do語句,你可以在Ruby中創建多行匿名函數,它將會作為一個參數傳遞給do前面的方法。在Python中,你可以傳遞一個方法或使用發生器實現同樣的目的。

  1. Ruby:  
  2.  
  3. amethod { |here|  
  4.     many=lines+of+code  
  5.     goes(here)  

Python(Ruby塊與Python中不同的構造對應):

  1. with amethod() as here: # `amethod() is a context manager  
  2.     many=lines+of+code  
  3.     goes(here) 

  1. for here in amethod(): # `amethod()` is an iterable  
  2.     many=lines+of+code  
  3.     goes(here) 

  1. def function(here):  
  2.     many=lines+of+code  
  3.     goes(here)  
  4.  
  5. amethod(function)  # `function` is a callback 

有趣的是,Ruby中調用塊的語句叫做“yield”,在Python中它將創建一個發生器。

Ruby:

  1. def themethod  
  2.     yield 5  
  3. end  
  4.  
  5. themethod do |foo|  
  6.     puts foo  
  7. end 

Python:

  1. def themethod():  
  2.     yield 5  
  3.  
  4. for foo in themethod():  
  5.     print foo  

雖然原理不一樣,但結果非常類似的。

Ruby支持更容易的功能性編程(管道式)

  1. myList.map(&:description).reject(&:empty?).join("\n") 
  2.  

Python:

  1. descriptions = (f.description() for f in mylist)  
  2. "\n".join(filter(len, descriptions)) 

#p#

Python內置有發生器(和Ruby中的塊用法類似)

Python支持發生器,在Ruby中,你也可以使用發生器模塊,但要使用延續從一個塊創建一個發生器,或者使用塊/proc/lambda,此外,Ruby 1.9中的纖程(Fibers)也可以作為發生器使用。docs.python.org提供了發生器示例:

  1. def reverse(data):  
  2.     for index in range(len(data)-1, -1, -1):  
  3.         yield data[index] 

請與上面的塊示例代碼對比。

Python有靈活的命名空間處理方法

在Ruby中,當你使用require導入一個文件時,文件中定義的所有項目將會在你的全局命名空間中結束,這會導致命名空間污染,解決辦法是Ruby模塊,但如果你使用模塊創建了一個命名空間,你必須使用該命名空間訪問包含的類。

在Python中,文件也是一個模塊,你可以使用“from themodule import *”導入它包含的名字,雖然這樣也會污染命名空間,但可以使用“from themodule import aname, another”或簡單地“import themodule”導入選擇的名字,然后使用“themodule.aname”訪問名字。

Python有文檔字符串(docstrings)

文檔字符串是附加到模塊、函數和方法的字符串,它有助于創建幫助命令和自動化文檔。

  1. def frobnicate(bar):  
  2.     """frobnicate takes a bar and frobnicates it  
  3.  
  4.        >>> bar = Bar()  
  5.        >>> bar.is_frobnicated()  
  6.        False  
  7.        >>> frobnicate(bar)  
  8.        >>> bar.is_frobnicated()  
  9.        True  
  10.     """  

Ruby的與Javadocs類似,它們可以在運行時使用1.9的“方法#源位置”從文件檢索。

Python有更多的庫

Python有大量的模塊和綁定的庫。

Python有多重繼承

Ruby沒有多重繼承。它作為抽象類類型重復使用模塊。

Python有列表/字典理解能力

Python:

  1. res = [x*x for x in range(1, 10)] 
  2.  

Ruby :

  1. res = (0..9).map { |x| x * x } 
  2.  

Python:

  1. >>> (x*x for x in range(10))  
  2. <generator object <genexpr> at 0xb7c1ccd4> 
  3. >>> list(_)  
  4. [0, 1, 4, 9, 16, 25, 36, 49, 64, 81] 

Ruby:

  1. p = proc { |x| x * x }  
  2. (0..9).map(&p) 

Python 2.7+:

  1. >>> {x:str(y*y) for x,y in {1:2, 3:4}.items()}  
  2. {1: '4', 3: '16'} 

Ruby:

  1. >> Hash[{1=>2, 3=>4}.map{|x,y| [x,(y*y).to_s]}]  
  2. => {1=>"4", 3=>"16"} 

Python有裝飾器

與Ruby中創建的裝飾器類似,但Ruby中的裝飾器不像Python中那樣重要,它是非必需的。

原文作者:Lennart Regebro

原文名:What does Ruby have that Python doesn’t, and vice versa?

原文地址:http://stackoverflow.com/questions/1113611/what-does-ruby-have-that-python-doesnt-and-vice-versa

【編輯推薦】

  1. Python編程語言與Ruby之間的比較
  2. 捕捉Ruby正則表達式用法精髓
  3. Python等動態語言企業應用面面觀 
  4. Python線程編程比ruby應用的優點

 

責任編輯:王曉東 來源: 51CTO.com
相關推薦

2013-08-22 10:03:38

谷歌Facebook數據挖掘

2016-11-09 15:18:04

大數據數據市場

2013-12-26 09:53:46

全閃存陣列全閃存存儲

2011-11-10 09:48:49

2010-06-09 12:26:46

世界杯布線

2010-07-05 09:12:39

戴爾服務器新品

2014-11-28 14:55:57

WiFi藍牙

2012-07-18 09:44:56

2017-09-19 13:12:38

5G電信移動

2019-05-22 15:55:41

NginxTomcat服務器

2016-01-06 19:38:25

2019-06-20 08:43:28

物聯網通訊技術IOT

2012-09-25 09:14:28

旁觀者效應負面效應代碼

2021-01-08 15:52:33

5G運營商套餐

2020-01-30 18:05:24

人工智能技術投資

2021-06-04 10:38:33

PythonIDE代碼編輯器

2020-09-22 07:45:14

編碼語言網站博客

2020-02-14 09:00:28

開源Cloud Found平臺

2020-01-22 16:50:32

區塊鏈技術智能

2024-04-02 11:37:59

AGI網絡模型GAN
點贊
收藏

51CTO技術棧公眾號

微拍福利一区二区| 尤物av无码色av无码| 国产乱淫a∨片免费视频| 四虎成人av| 精品三级在线观看| 欧美日韩一区二区在线免费观看| 91精品国产综合久久久久久豆腐| 国产激情一区二区三区四区 | 激情欧美日韩一区| 亚洲欧美中文日韩v在线观看| 亚洲精品久久久久久宅男| 欧美四级在线| 欧美国产日产图区| 国产乱码精品一区二区三区日韩精品 | 日产日韩在线亚洲欧美| 国产探花在线视频| 色哟哟精品丝袜一区二区| 欧美二区三区91| 97超碰青青草| 羞羞视频在线观看免费| 欧美国产日本韩| 久久久久免费网| 亚洲精品国产精品乱码不卡| 免费成人小视频| 欧美一级电影在线| 精品99在线观看| 91亚洲一区| 亚洲三级av在线| 亚洲天堂2024| 国产美女视频一区二区| 欧洲一区在线观看| 欧洲黄色一级视频| 麻豆av在线播放| 亚洲精品美国一| 在线国产精品网| 高清性色生活片在线观看| av在线播放成人| 国产高清自拍一区| 精品黑人一区二区三区在线观看 | 国产 xxxx| 北条麻妃在线一区二区免费播放 | 水蜜桃av无码| 8848成人影院| 日韩欧美国产麻豆| 亚洲精品在线网址| 日韩成人综合网| 欧美在线小视频| 毛葺葺老太做受视频| 亚洲欧洲自拍| 色综合天天综合| www.com毛片| 中文不卡1区2区3区| 五月天网站亚洲| 你懂的av在线| 亚洲人成在线网站| 日韩欧美大尺度| 成人三级视频在线播放| 澳门av一区二区三区| 欧美日韩亚洲91| 六月丁香婷婷激情| 亚洲国产成人二区| 91久久久免费一区二区| 国产天堂在线播放| 亚洲电影二区| 日韩午夜激情免费电影| 少妇丰满尤物大尺度写真| 91在线一区| 欧美成人伊人久久综合网| www.欧美com| 欧美成人午夜77777| 日韩精品免费综合视频在线播放| 中文精品在线观看| 成人免费av| 久久天堂电影网| 久青草视频在线观看| 亚洲精选国产| 国产精品久久二区| 一区二区三区亚洲视频| 国产高清一区日本| 久久久久久久久久久久久9999| 国产视频第一区| 亚洲视频香蕉人妖| 久久人人爽人人爽人人av| 亚洲欧美小说色综合小说一区| 欧洲av在线精品| 国产又粗又猛大又黄又爽| 国产精品对白| 一区二区亚洲精品国产| 九九热最新地址| 一区二区日本视频| 成人国产精品久久久| 高潮一区二区三区乱码| 久久久精品欧美丰满| 精品国产三级a∨在线| 精品三级久久| 欧美精品在线观看一区二区| 午夜影院福利社| 久久91精品| 九九热最新视频//这里只有精品 | 欧美久久婷婷综合色| 91人人澡人人爽| 国产精品羞羞答答在线观看| 欧美精品免费在线观看| 亚洲乱码国产乱码精品| 国产激情91久久精品导航| 免费国产一区| а√资源新版在线天堂| 色综合天天综合网天天看片| 宇都宫紫苑在线播放| 综合亚洲色图| 欧美激情久久久久| 亚洲无码久久久久| 91伊人久久大香线蕉| 2021狠狠干| 91p九色成人| 亚洲精品乱码久久久久久金桔影视| 精品久久久久久中文字幕人妻最新| 性欧美欧美巨大69| 国产精品久久久久久网站 | 在线观看91久久久久久| 久久精品久久精品久久| 久久se精品一区精品二区| 欧美不卡三区| av蜜臀在线| 91精品国产欧美一区二区成人| 中国女人特级毛片| 国产情侣久久| 国产欧美在线一区二区| 在线播放蜜桃麻豆| 欧美日韩免费一区二区三区视频| 爱爱的免费视频| 激情欧美一区| 电影午夜精品一区二区三区| 黄色一级大片在线免费看产| 欧美三级视频在线| 日本高清黄色片| 久久久久久久波多野高潮日日| 精品乱码一区| 2021天堂中文幕一二区在线观| 日韩午夜三级在线| 欧美三级日本三级| 国产伦理精品不卡| 亚洲区成人777777精品| 精品国产不卡一区二区| 久久精品电影一区二区| 91福利在线观看视频| 国产精品久久久久久久久快鸭| 无码少妇一区二区三区芒果| 欧美极品在线观看| 国产a级全部精品| 九色视频网站在线观看| 色屁屁一区二区| 亚洲久久久久久久| 日韩高清在线不卡| 亚洲成人精品电影在线观看| 成人在线观看免费视频| 色悠悠久久88| 亚洲天堂中文网| 综合久久一区二区三区| 久久久久亚洲av片无码v| 亚洲最大av| 成人免费视频观看视频| 国产高清自产拍av在线| 亚洲精品wwww| 日韩精品成人免费观看视频| 国产欧美视频在线观看| 欧美wwwwwww| 欧美黄免费看| 精品国产综合| 日本精品在线中文字幕| 色yeye香蕉凹凸一区二区av| 国产精品呻吟久久| 亚洲一区二区五区| 中文字幕在线免费看线人| 丝袜国产日韩另类美女| 亚洲精品一区二区三区四区五区| 日韩国产大片| 性欧美视频videos6一9| 久久精品国产亚洲a∨麻豆| 欧美日韩国产美女| 免费在线视频观看| 久久欧美一区二区| 国产欧美激情视频| 亚洲美女少妇无套啪啪呻吟| 日本不卡一区二区三区视频| 四虎精品永久免费| 高清在线视频日韩欧美| 黄色的视频在线免费观看| 欧美久久久久久蜜桃| 国产成人亚洲欧洲在线| 中文在线资源观看网站视频免费不卡| 欧美专区第二页| 亚洲另类视频| 欧美性受xxxx黑人猛交88| 久久动漫网址| 国产在线视频一区| 九九精品调教| 色婷婷**av毛片一区| 亚洲男人第一天堂| 欧美性受xxxx黑人xyx性爽| 免费在线看黄网址| 国产精品麻豆99久久久久久| 日本少妇毛茸茸| 国产一区二三区| 免费午夜视频在线观看| 国产一区亚洲| 亚洲午夜高清视频| 亚州av日韩av| 成人xxxxx色| 久久精品xxxxx| 2020欧美日韩在线视频| 在线观看午夜av| 色七七影院综合| 国产资源在线观看| 亚洲福利精品在线| 国产男女无套免费网站| 在线免费不卡视频| 黄色片免费观看视频| 亚洲精品国产a久久久久久| 国产一二三av| 久久久久久久综合狠狠综合| 麻豆精品国产传媒av| 国产福利精品一区二区| 日韩成人精品视频在线观看| 性8sex亚洲区入口| 九色自拍视频在线观看| 欧美激情精品久久久六区热门| 西游记1978| 精品久久91| 日韩欧美一区二区在线观看| 亚洲精品小区久久久久久| 国产精品伊人日日| av不卡一区| 风间由美一区二区三区| 国产精品亚洲欧美日韩一区在线 | 欧美大码xxxx| caopeng在线| 欧美成年人网站| 成人三级网址| 久久69精品久久久久久国产越南| 九七电影韩国女主播在线观看| 在线精品国产成人综合| av在线电影观看| 在线电影av不卡网址| 在线免费看黄网站| 神马久久久久久| 欧美三级电影一区二区三区| 色吧影院999| 国产在线激情| 久久6免费高清热精品| 中文av资源在线| 欧美激情18p| 成人爽a毛片免费啪啪动漫| 久久久久五月天| 日本三级一区| 国产精品福利无圣光在线一区| 日韩漫画puputoon| 成人免费网站在线| 日本一区二区乱| 国产精品一区二区免费看| 另类ts人妖一区二区三区| 裸模一区二区三区免费| 国产亚洲电影| 亚洲综合第一| 欧美三级网页| 北条麻妃在线视频观看| 日韩国产精品大片| 涩涩网站在线看| 成人午夜视频免费看| 女同毛片一区二区三区| 欧美国产1区2区| 欧美精品乱码视频一二专区| 亚洲成人av福利| 午夜精品一区二| 欧美绝品在线观看成人午夜影视| 亚洲精品国产精| 亚洲欧美日韩视频一区| 久久bbxx| 91国产精品91| 日日夜夜精品| 国产伦一区二区三区色一情| 精品国产一区二区三区久久久樱花 | 欧美激情偷拍自拍| 久草视频这里只有精品| 玖玖在线精品| 两女双腿交缠激烈磨豆腐| 久久嫩草精品久久久精品一| 自拍偷拍第9页| 香蕉成人伊视频在线观看| 中文在线a天堂| 精品国产露脸精彩对白| 国产一级在线| 欧美国产日韩中文字幕在线| 欧美大片免费高清观看| 91免费在线视频| 少妇精品导航| 天天想你在线观看完整版电影免费| 一本一本久久| 麻豆精品国产传媒| 欧美国产精品v| 国产精品免费av一区二区| 欧美久久一二区| 欧美xxx.com| 久久久久久国产免费| 国产精品久久久久久妇女| 国产亚洲福利社区| 欧美成人首页| 激情五月俺来也| 久久综合资源网| 国产在线观看免费av| 欧美美女视频在线观看| 欧美高清电影在线| 国语自产精品视频在线看抢先版图片| 成人国产精品| 欧美一区二区三区四区夜夜大片| 亚洲一级高清| 午夜影院免费观看视频| 中文一区二区完整视频在线观看| 日韩在线观看第一页| 欧美第一区第二区| а√天堂资源地址在线下载| 国产精品久久电影观看| 女厕嘘嘘一区二区在线播放| 欧美视频在线免费播放| 国产精品99精品久久免费| 精品亚洲乱码一区二区| 欧美性大战久久久久久久蜜臀| 亚洲欧美综合一区二区| 欧美激情一区二区三区久久久 | 欧美一区二视频| 亚洲视频tv| 国产精品色视频| 精品免费一区二区| 热久久精品国产| 久久精品网站免费观看| 91精品国产综合久久久蜜臀九色| 亚洲国产成人精品久久久国产成人一区 | 国产调教视频一区| 国产又大又黄又粗| 日韩成人在线视频| 黄色激情在线播放| 精品午夜一区二区三区| 一本色道久久综合亚洲精品不卡| 五十路六十路七十路熟婆| 精品欧美激情精品一区| 亚洲人在线观看视频| 欧美在线免费看| 国产精品嫩模av在线| 亚洲色图 在线视频| 国产精品久久久久影院亚瑟| 一区二区三区免费在线视频| 久久精品中文字幕| 精品视频一区二区三区| 青青青在线观看视频| 成人黄色在线视频| 中国一级特黄毛片| 亚洲免费一级电影| 国产精品天堂蜜av在线播放| 亚洲砖区区免费| 国产suv精品一区二区三区| 国产一级淫片a| 亚洲精品网站在线播放gif| 亚洲精品一级二级| 亚洲综合视频一区| 国产成人精品免费网站| 成人精品在线看| 国产亚洲精品久久久久久777| 日本久久久久| 国产成人艳妇aa视频在线| 久久亚洲综合色| 夜夜躁很很躁日日躁麻豆| 久久99久久99精品中文字幕 | 日韩激情视频在线| 91天天综合| 欧美久久在线观看| 久久精品人人做人人爽人人| 国产又粗又黄又爽视频| 久久久亚洲影院你懂的| av永久不卡| 亚洲精品乱码久久久久久9色| 日韩欧中文字幕| 国产在线观看a视频| 精品免费视频123区| 另类小说一区二区三区| 久久精品久久国产| 日韩在线观看视频免费| 国产成人澳门| 狠狠躁狠狠躁视频专区| 亚洲午夜久久久久久久久久久| 男人天堂资源在线| 999热视频在线观看| 丝袜诱惑亚洲看片| 久久久久久久久久久网| 一夜七次郎国产精品亚洲| 中文无码日韩欧| www.99在线| 五月综合激情网| 在线观看免费视频你懂的| 亚州欧美一区三区三区在线| 成人久久久精品乱码一区二区三区 |