看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之後會說連迴圈都沒有,什麼垃圾語言