Python語言是不是有設計缺陷?

來源:互聯網
上載者:User
看python寫的源碼,很多不知道類型到底是什麼,亦不知道該調用什麼方法,常用方法的傳回值也不知道是什麼類型,中文處理相當不好,亂碼十分嚴重,為什麼還有人推薦?

回複內容:

python3不是加function annotation了嗎,用function annotation或isinstance方法,IDE都能找到可用的方法,實在不行還有REPL呢這個問題下面的答案戾氣好重... 不敢說話了...
只好祭出別人的文章, 大家不要噴我了, 我看不懂連結內的文字, 也不知道他在說啥... 我貼這個連結並不表示我贊同或反對這個連結裡面的任何觀點. 個人瑾保持獨立樂觀開放的心態對待python.
Python is ugly
Wit.io 對於問題本身,不知道類型是什麼。

治標的方法是用 JetBrains PyCharm ,有類型推導(注意要加類型標註)。

治本的方法是改用強型別靜態類型的語言。比如我現在沉迷的 Rust 語言。

另外 Python 正考慮引入類型檢查(mypy)[Python-ideas] Proposal: Use mypy syntax for function annotations 。本身 Python 3 就支援類型注釋。

def func(foo: Foo) -> Bar:    Bar(foo)
看到python缺陷笑了,還是來談談JavaScript吧,這門語言十(ni)分(ma)靈(keng)活(duo)Python 作為動態類型的語言,使用的時“鴨子類型”的概念,即如果一個生物走起來像鴨子,叫起來像鴨子,他就是鴨子。對於Python編程來說,解譯器不管你這個對象是什麼類型,只管這個對象有沒有對應的方法和屬性。所以你希望他是什麼類型,你就調用什麼方法就行了,如果類型錯誤解譯器會告訴你,你所調用的方法不存在。而可以使用"dir(obj)"這樣的命令查看這個對象有什麼方法和屬性,當然也可以通過"type(obj)"來查看這個對象當前的類型。關於中文亂碼,題主用的是Windows吧,Python預設編碼是Unicode,*nix系統一般都是相容的,而Windows用的是萬惡的gbk編碼, 如果需要統一文字編碼,建議使用下面的程式轉換編碼:

# 嘗試將字串轉成utf-8的,如果失敗轉為gbk的try:    doc = doc.encode('utf-8')except UnicodeEncodeError:    doc = doc.encode('gbk', 'ignore')
Python確實有垃圾的地方,可是你問題描述裡列的這些都不是:

看python寫的源碼,很多不知道類型到底是什麼,亦不知道該調用什麼方法,常用方法的傳回值也不知道是什麼類型,中文處理相當垃圾,亂碼十分嚴重,浪費時間,為什麼還有人推薦?竟然這麼多評論的,嚇尿了。

其實這東西都是仁者見仁智者見智的,爭來爭去沒什麼意思,都是個人品味的東西,如果是bug早就被修複了。

大家可以去看 @徐釀泉的答案,從另一個角度來看這些問題。

順便給大家安利一下,rust大法好,類型系統保平安。

==================================

LZ你噴python都噴不到點子上啊。

1. python號稱是物件導向語言。

那讓我們來看看list類:list.append(), list.count(), 嗯看起來很不錯的樣子。..... 但是,等一下! len(list) 什麼鬼! consistence被狗吃了麼。。 以為自己是STL的Algorithm庫????

2. 命名風格不忍直視。

getstatusoutput ← 這是什麼東西。。???

3. 閉包。

誒,python有lambda運算式誒,那有沒有閉包呢? 讓我們來試一下

def f(x):    return lambda y: x + yg = f(10)print (g(20))
scala大法好題主這種癥狀,動態語言趕緊滅退保,去寫Java或者C#吧前面你說的類型的問題,動態類型的語言都是這樣,題主只學過C/C++/Java?
中文亂碼這個可以試試Python3.x

ps:我猜題主學了erlang/haskell之後會說連迴圈都沒有,什麼垃圾語言
  • 聯繫我們

    該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

    如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

    A Free Trial That Lets You Build Big!

    Start building with 50+ products and up to 12 months usage for Elastic Compute Service

    • Sales Support

      1 on 1 presale consultation

    • After-Sales Support

      24/7 Technical Support 6 Free Tickets per Quarter Faster Response

    • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.