OO 的設計理念對 Python 來說是重點嗎?
01-27
是的。
OO是Python的核心理念,Python他老爹Guido一開始就是要做OO語言來著。而且Guido本人還對FP相當不抱好感。
重要!
Python 官網介紹Python[1]的第三個特點就是intuitive object orientation(直覺的面向對象)。Python也在標準庫、第三方庫中大量使用的OO的編程方法。因此OO對Python來說是重要的。
再說OO本身的重要性。任何上一定規模的項目,代碼都要面臨可維護的性的問題。由於一個人的注意力是有限的,所以解決代碼可維護性問題一個主要方向是關注點分離(SoC)[2]. 模塊化、MVC、面向對象、服務化等等都是實現關注點分離的方式。常見上規模的開發項目,這些方法是都是必須要理解的和實踐的。
所以OO是學習Python和其他任何一門現代語言時推薦掌握的概念。
[1] http://www.python.org/about/[2] http://en.wikipedia.org/wiki/Separation_of_concernsPython對於OO來說應該更友好。
如果你硬要用FP的習慣寫Python也不是不可以,寫出來很醜就是了,可讀性會比較差。OO只是一個被過度灌輸的概念,就像XML一樣,遠沒有想像的重要。python可以實現oo,但沒有oo,python也活得好好的
我理解,
語言只是用來表達我們的思想的工具
思想跟這個語言本身並沒有太大關係OO可以用Python,也可以用C++,等等反過來,Python可以表達OO,也可以表達其他的開發思想就像你用英語可以寫出準確嚴謹的科學論文,
也可以寫出幽默風趣的幽默小品那你說準確嚴謹是英語的重點呢?對於一個用python當作加強版shell的人來說,oop顯然不是重點。
沒有人強制要求必須用面向對象的方式來寫python代碼,這個看個人了!
Python類型為什麼是對象類型,因為都是對象啊,OO是Python設計之初就被賦予了,而且比起其他的OO語言,Python的OO更加簡便和易於理解,也有一些比較有特色的特性。
不是。其實OO本來就不應該成為所謂編程的重點,因為實現某個功能和目標的方法有很多,更重要的是如何根據需求選擇盡量適合的方法而不是拘泥於某一種方法。這個世界上本來也不存在包治百病的葯。
推薦閱讀: