RubyºÍPythonµÄÓï·¨±È½Ï
RubyºÍPythonµÄÓï·¨±È½Ï
ÆäʵRubyºÍPython·Ç³£½Ó½ü£¬±È´ó¶àÊý±ðµÄÓïÑÔÒª½Ó½üµÄ¶à£¬ËùÒÔϲ»¶ÓÃɶ¾ÍÓÃɶ£¨´óʵ»°£¬ËäȻҲÊÇ·Ï»°£©¡£Óï·¨ÉϵIJî±ðËäÈ»ÓÐÄÇôһµã£¬´ó²¿·ÖÊÇsyntax sugar£¬ÎÒ¶·µ¨ÉÔ΢Áм¸¸ö£¨pythonÎÒÒ²ÍüµÃ²î²»¶àÁË£¬²»¶ÔµÄ´ó¼Ò¾¡¹ÜÀ´±Þʬ°É£©£¬µ«ÊÇÖ÷Òª²îÒ컹ÊÇÉè¼ÆË¼ÏëÉϵģºÁé»îvsÃ÷È·. ÎÒ²»ÈÏΪÁ½ÕßÔÚÉú²úÁ¦ÉÏ»áÓÐʲô²î±ð£¬Èç¹ûÄãÊìϤµÄ»°¡£*×¢Ò⣬½öÏÞÓïÑÔ±¾ÉíµÄ±È½Ï¡£
±¾ÎÄÍÆ¼ö£ºRubyÈëÃŽ̳ÌÓë¼¼ÇÉ´óÈ«
RubyºÍPythonµÄ±È½ÏÁбí
1. rubyµÄcase¿ÉÒÔÆ¥ÅäºÜ¶à¶«Î÷£º·¶Î§/Êý×飬¶ÔÏó£¬ÕýÔò±í´ï£¬pythonûÓÐcase/switch¶øÊ¹ÓÃif/else±È½ÏËÀ°åµã
2. pythonµÄËõ½øºÜƯÁÁ£¬ËäÈ»ÓÐʱ»áÔì³ÉЩÐíÂé·³¡£rubyµÄendÂùÄÑ¿´µÄ£¬ËùÒÔ´ó¼Ò¶¼±»±Æµ±one liner£¨ÍæÐ¦£©
3. ¸Ð¾õÉÏruby±Èpython¸üOO,µ±È»ÕâÒ²¿ÉÄÜÊÇÒòΪpython²»ÌᳫÓÃÄÇЩ¸Ä±ä¶ÔÏóÄÚ²¿¹¹ÔìµÄ‘¼¿Á©’Ôì³ÉµÄ´í¾õ
4. pythonÓÐlist comprehension, rubyûÓÐ:(
5. pythonÓÐÕæÕýµÄkeyword argument, rubyÓÃhashÄ£Ä⣬µ±È»Êµ¼ÊÓÃÆðÀ´Ã»Ê²Ã´²î±ð
6. pythonµÄselfºÜÌÖÑᣬrubyûÓÐÄÇÖÖ·±ËöµÄ¶«Î÷
7. reflection£¬rubyÄÚÖÃÁ˺ܶ෽·¨£¬±ÈÈçobject.methods£¬¶øpython°ÑÕâЩÐÅÏ¢´æÔÚÌØÊâµÄ×ÖµäÀï¡£²î²»¶à
8. rubyµÄblock¹¦ÄܺÜÇ¿£¬pythonµÄlambdaÖ»ÄÜ·µ»Øµ¥Ò»Öµ
9. rubyµÄopen classÒѾÉùÃ÷Ô¶²¥£¬¿ÉÒÔÍæ³ö2.days.agoÕâÑùµÄ»¨Ñù£¬pythonºÃÏñû·¨Ö±½ÓÐÞ¸ÄÄÚÖÃÀàÒ²·´¶ÔÕâô×ö¡£
10. pythonÐèÒªÓÃ@classmethodÐÞÊÎÉùÃ÷Àà·½·¨£¬rubyÊÇÄÚ½¨
11. rubyÓе¥×Ó·½·¨£¬Ò²¾Í¶Ô¶ÔÏóµ¥¶À¶¨ÖÆ£¬python²»ÖªµÀÓÐûÓÐÀàËÆ¸ÅÄî
12. rubyÓÐmethod_missing»úÖÆ£¬python¿ÉÒÔʹÓÃ__getattr__½Ø»ñ䶨Òå·½·¨(from qiezi)
13. rubyʹÓõ¥¼Ì³Ð+mixin£¬pythonʹÓöàÖØ¼Ì³Ð£¬²»¹ýpythonÒ²ÓÐmixin
14. rubyÓÐattr_*ϵÁÐÓï·¨helper£¬Ê¡È´×Ô¼ºÐ´Ò»¶Ñsetter/getter, pythonµÄproperty·½·¨»¹ÊǵÃ×Ô¼ºÐ´setter/getter
15. rubyºÍpython¶¼Ê¹ÓÃduck typing£¬²»¹ýpythonÒ²ÓÐÒ»Ì×ÏÔʽµÄinterface»úÖÆ(´Ózope3²¢ÈëÄÚºËÁËô£¿)
16. rubyµÄº¯Êýµ÷ÓÃÀ¨ºÅÊÇ¿ÉÊ¡µÄ£¬ÉÔ΢ÉÙÇü¸Ï¼üÅÌ¡£pythonĬÈÏûÀ¨ºÅÒ²²»´ø²ÎÊýµÄ»°·µ»Øº¯Êý±¾ÉíµÄÒ»¸öÒýÓá£
17. ÎÒ²»Çå³þpythonµÄmeta programmingÄܵ½Ê²Ã´³Ì¶È£¬Ö»ºÃµÈ´óÅ£À´ËµËµÁË¡£Ö»ÊǾõµÃpythoner²»³£ÓÃÄǸö£¬Ò²Ðí¾õµÃ»á°Ñ³ÌÐòÂß¼¸ãµÃ»Þɬ²»Ã÷¡£
18. ruby´Óperl¼Ì³ÐÁËÒ»²¿·ÖÄÑ¿´µÄ¶«Î÷£¬±ÈÈçºÜ¶àÔ¤¶¨ÒåµÄ$x³£Á¿
19. rubyÄÚ½¨ÕýÔò±í´ï£¬·½±ãÒ»µã
Ïà¹ØÎĵµ£º
Python Import»úÖÆ±¸Íü(ת)
×î½üÔÚ¿´¡¶PythonÔ´ÂëÆÊÎö¡·£¬¶ÔPythonÄÚ²¿ÔËÐлúÖÆ±ÈÒÔǰÁ˽âµÄ¸üÉîÈëÁË£¬¸Ð¾õ×Ô¼ºÓлú»áÒ²¿ÉÒÔ×ö¸öСÐ͵Ķ¯Ì¬½Å±¾ÓïÑÔÁË£¬ºÇºÇ£¬µ±È»
ÊÇ´µÅ£ÁË¡£Ä¿µÄµ±È»²»ÊÇ´´ÔìÒ»¸ö¶¯Ì¬ÓïÑÔ£¬Ä¿µÄÖ»ÓÐÒ»¸ö£º¸üºÃµÄʹÓÃPython¡£¿´µ½Ä£¿éµ¼ÈëÄÇ¿éµÄʱºò£¬ÖÕÓÚ¶ÔÄ£¿éµ¼Èë»úÖÆ±È½ÏÁ˽âÁË£¬ÒÔ·ÀÍ ......
ÀµÓºÆ(http://blog.csdn.net/lanphaday) Òë
ÒëÕß°´£ºPython¡¢luaºÍrubyÔÚC/C++ÊÇÈÕ½¥Ê½Î¢µÄÇé¿öÏ£¬ÔÚjava/.netµÄΧ¼ßÖÐŬÁ¦¿¹ÕùµÄÈý¸öµ±ºìСÉú¡£ÔÚTom GutschmidtµÄÖø×÷¡¶Game Programmng with Python, Lua and Ruby¡·Ò»ÊéÖУ¬½éÉÜÁËÈýÖÖÓïÑÔÔÚÓÎÏ·ÖеÄÓ¦Óã¬ÆäÖÐÓÈΪÁ˲»ÆðµÄÊÇÔÚÊéÖÐ×îºóÒ»ÕÂÖбȽÏÁËÈýÖֽű¾£¬×÷Õßà ......
b = "123"
a = b
b.gsub!(/2/,"")
puts a
µÃµ½µÄ½á¹ûÊÇ13£¬·¢ÏÖÈç¹ûa = bµÄ»°Ã²ËÆÖ»ÊǰÑbµÄÖ¸Õë¸øÁËa£¬µ«ÊÇÈç¹ûbµÄÖµ·¢ÉúÁ˱仯a²ÅÄÜ´ÓbÖжÀÁ¢³öÀ´¡£
Èç¹û°ÑÉÏÃæµÄ´úÂë¸Ä³É
b = "123"
a = "#{b}"
b.gsub!(/2/,"")
puts a
ÔòµÃµ½µÄ½á¹ûΪ123£¬ÕâÀïÊǰÑbµÄÖµ¸øÁ ......
def getText(self,nodelist):
rc=""
for node in nodelist:
if node.nodeType == node.TEXT_NODE or node.nodeType == node.CDATA_SECTION_NODE:
rc = rc + node.data
return rc
def parseXML(self,requesturl,xml):
dom = minidom.parse(requesturl)
for node in dom.getElementsByTagName('ca ......
¡¡×î½ü£¬ÎÒÐèÒªÒ»ÖÖ¿ìËÙ¿ª·¢ÓïÑÔ£¬Ä¿Ç°ÖËÊÖ¿ÉÈȵĿìËÙ¿ª·¢ÓïÑÔ¾ÍÊÇPythonºÍRubyÁË¡£RubyºÍPython¶¼ÊǷdz£ÓÅÐãµÄ½Å±¾ÓïÑÔ£¬ËäÈ»ËûÃǵÄÉè¼ÆÕÜѧ¼¸ºõÍêÈ«²»Í¬£¬µ«ËûÃÇЧÂʲ¶à£¬Ó¦ÓÃÁìÓòÒ²²î¾à²»´ó£¬ËƺõÌìÉú¾ÍÊǾºÕù¶ÔÊÖ¡£µ½µ×Ñ¡ÄǸöÄØ?ÎÒ×öÁËһЩ¼òµ¥µÄ±È½Ï¡£
¡¡¡¡ÎÒÃDZȽ ......