<output id="qn6qe"></output>

    1. <output id="qn6qe"><tt id="qn6qe"></tt></output>
    2. <strike id="qn6qe"></strike>

      亚洲 日本 欧洲 欧美 视频,日韩中文字幕有码av,一本一道av中文字幕无码,国产线播放免费人成视频播放,人妻少妇偷人无码视频,日夜啪啪一区二区三区,国产尤物精品自在拍视频首页,久热这里只有精品12
      最近在bbs發文多了,都懶得寫東西了,下了好大決心才決定動筆。

      第一個常見看法是:

      python和basic差不多應該是容易學,但是功能弱的語言

      basic是好多人的年幼時的回憶了,gvbasic,gwbasic,qbaisc,各種版本把很多人帶入了快樂的世界里面。但是很多人都會用了一段時間basic之后就把它廢置了,因為覺得除了能夠用來play,功能太少。即便是vb,也是功能不甚完善的,很多地方要依靠其他語言寫的組件和直接調用api來完成功能。
      而python由于粗看之下,也是那么的像玩具。而且那個交互式命令行給人帶來的教學語言的感覺更加加強了人們的想法。
      但是python其實功能不能說是弱,其實是非常強大。python內置了重要的數據結構和文件這些功能,而且包含了一個很大的標準庫,基本上涵蓋了從GUI到數據庫到網絡種種功能上的要求。而且還有很多愛好者,公司企業為python寫第三方的庫,這些庫品種繁多,功能齊全。而且還能把其他語言的庫加以包裝給自己使用,直接用c這樣的語言了來寫擴展的庫也是可以的。所以說,python像basic一樣好學,但是功能卻要強大很多。

      第二個常見看法是:

      python速度很慢,只能用在很少的應用場合

      對于習慣了匯編和C++這樣的語言的人,思維總是有一個慣性(包括我自己也經歷了這么一個階段)。就是看文件大小是數字節的,任何運行時的overhead都是絕對不可以的。那么一看見python這樣的動態語言,而且動態得非常厲害的語言,怎么看怎么不順眼也是情理之中了。
      關鍵的問題首先是你是否需要省那么個100~200k的大小,現在的內存,硬盤,網絡通信環境已經不大在乎這么一點的空間了,所以大小不是問題。關鍵的是運行時間嗎?其實在很多場合下是不需要那么快的速度的,比如開一個窗口,運行如果延時100ms,你感覺得到嗎?
      python還能夠把py文件進行一些處理變成pyc文件,加速源文件的解釋執行。像java的虛擬機中的just in time或者hot spot這樣的預先讀取,預先編譯的技術都能構同等的用于python。
      python還有一個非常大的好處就是能夠用C這樣的快速的語言寫擴展模塊。在軟件中一般都是20%的代碼占據了80%的運行時間。這樣你可以先用benchmark這樣的工具看看軟件是否慢得無法忍受了,然后再用profiler查出問題瓶頸在哪里,那么就可以把關鍵的代碼用C解決掉。這樣可以節省了開發時間(大部分代碼用python寫,比C快),而且運行速度也可以令人滿意。
      所以說,對于python的速度是不用多擔心的。但是為了客觀起見,python的卻是慢的,在python中什么都是對象,這個比java這樣的不那么純的OO語言,就要差一些了。

      第三個常見問題是:

      由于python是動態的,程序更加容易出錯了

      有這個看法主要是認為,因為python是動態的,所以缺乏靜態的類型檢查,那么程序中的錯誤就很難發現了。設置可能說沒有執行到的塊的語法都沒有得到完全徹底的檢查。變量由于沒有聲明,所以容易產生誤寫的錯誤。事情真這么糟糕嗎?

      第一個缺乏類型檢查是說一個函數有幾個參數,但是由于參數的類型是動態確定的,所以沒有辦法在靜態的時候就檢查傳入的參數和參數表是否匹配了。問題是你寫的函數一定要自己測試了,而且一旦出了問題,你是非常容易找到出錯的地方的。dynamic typing是那么靈活好用,多這么一點麻煩也是值得的。

      第二個看法就是錯誤的。在python中所有語法都得到了檢查的。即使是處在分支語句中。只是有可能你說的是這樣的情況:
      a = 1;
      明明加了分號,怎么不說我錯了呢?其實分號是可以用的,用來格開在一行中的不同語句。
      還有可能是這樣的:
      if a == 0:
        fsdfsdafsad
      這個怪東西應該是一個語法錯誤吧。其實是未必。因為程序運行到這個的時候可能這個名字就綁定到了什么東西上了,未必就是錯誤。它是符合語句的語法的。

      第三個則不是那么回事了。在basic中,你引用一個沒有出現過的變量名。那么這個變量自動被分配,而且得到初始化。這個就會出問題了。而python中,你不能引用一個沒有綁定到對象上的名字,而
      name = 0
      這樣的語句就是一個聲明了。沒有什么問題。
      name = 0
      nama = 1
      這個總是問題了吧。對于變量名的誤拼寫出現在賦值的情況的時候就會被通過,因為認為是產生一個新的名稱綁定。那么這個也好找出來啊,必然是出現在賦值的情況下,比basic中的那種情況好多了

      總體來說是,dynamic的東西缺少一些靜態的檢查的卻是會使得錯誤隱蔽一些。但是由于動態帶來的調試上的方便(比如能夠一眼從出錯信息中找到出錯的行,以及調用流程)足以把副作用給抵消了。

      希望通過我的一點解釋,能夠讓你消去疑惑,喜歡上python。
      posted on 2004-05-25 02:26  taowen  閱讀(1814)  評論(2)    收藏  舉報
      主站蜘蛛池模板: 成人网站免费观看永久视频下载 | 99噜噜噜在线播放| а∨天堂一区中文字幕| 男女猛烈无遮挡免费视频| 黑人猛精品一区二区三区| 被c到高潮疯狂喷水国产 | 日韩精品人妻黄色一级片| 久久国产免费直播| 少妇人妻偷人偷人精品| 欧美国产激情18| 亚洲av与日韩av在线| 国内精品久久久久影院网站| 果冻传媒18禁免费视频| 亚洲精品专区永久免费区| 深夜释放自己在线观看| 久久久久成人精品| 国产性生大片免费观看性| 亚洲成在人线AV品善网好看| 免费拍拍拍网站| 久久亚洲精品中文字幕无| 国产成人AV国语在线观看| 99精品国产综合久久久久五月天| 视频一区二区 国产视频| 欧美人成精品网站播放| 亚洲欧洲美洲在线观看| 亚洲精品久久国产高清小说| 成人亚洲av免费在线| 99精品国产高清一区二区麻豆| 亚洲五月天一区二区三区| 精品无码久久久久久尤物| 韶山市| 亚洲综合伊人五月天中文| 秋霞电影院午夜无码免费视频| 72种姿势欧美久久久久大黄蕉| 国产麻豆91网在线看| 亚洲aⅴ男人的天堂在线观看 | 久久综合亚洲色一区二区三区| 国产精品无码无需播放器| 国产精品午夜福利免费看| 亚洲国产高清第一第二区| 亚洲欧洲∨国产一区二区三区|