雲端計算培訓學院,雲端計算Python自動化運維開發實戰

weixin_34232744發表於2018-05-15

都忘記是什麼時候知道python的了,我是搞linux運維的,早先只是知道搞運維必須會shell,要做一些運維自動化的工作,比如實現一些定時備份資料啊、批量執行某個操作啊、寫寫監控指令碼什麼的。後來發現工作量大的時候shell開始變慢,實現某個功能使用shell感覺力不從心,聽人說python能實現shell能做的一切功能,而且開發效率高,速度快,慢慢的就認識了python,多多少少看點簡單的東西。

印象最深的是花幾天時間把《python簡明手冊》看完後,感覺python很簡單,特二的認為自己會python了,尷尬的在後面,發現我只是學了點python的基礎,現在看來連皮毛都算不上。都說python簡單,可能是對專業的開發人員來講吧,我作為一個搞運維的對程式設計真的是不感冒,發現python真的是博大精深,好難,東西好多,學不完,不過還好,我們運維工程師不用搞那麼多。算了,發發牢騷,不扯淡了,上正題。

關於python的歷史,起碼應該知道guido吧,人稱龜叔,曾就職於google,現在dropbox,一家做雲端儲存的公司,最近也沒了解過他了,沒準兒換地方兒了呢,呵呵。他很nb,你想他的nb之處就沒法玩兒了。他希望有一種語言,能像C語言那樣,全面呼叫計算機的功能介面,又可以像shell那樣輕鬆的程式設計,找到一種叫ABC的語言,後來覺得人家別人寫(他自己也參與開發了)的語言不好用,就自己用c語言寫了一個。

1991年開發出來的,發展到現在在雲端計算、自動化運維、人工智慧等方面沒有什麼語言能幹掉它了。不管未來怎樣,python的歷史已經可以當小說讀讀就算了。

python特性

1. 物件導向

物件導向的程式設計抽象出物件的行為和屬性,把行為和屬性分離開,但是又合理的組織在一起。它消除了保護型別、抽象類、介面等物件導向的元素,使得物件導向的概念更容易理解。

2. 簡單

沒有分號,使用縮排的方式分隔程式碼,程式碼簡潔,短小,易於閱讀。

3. 內建資料結構

類似於Java中集合類的功能。python的資料結構包括元組,列表,字典等。元組相當於“只讀”的陣列,列表可以作為可變長度的陣列使用,字典相當於java中的hashtable型別。

4. 健壯

提供異常退出機制,能捕獲程式的異常情況。

5. 跨平臺

python會先先編譯成與平臺相關的二進位制碼,然後再解釋執行,這種方式和java類似。

6. 可擴充

python是用c開發的語言,因此可以使用c擴充套件python,可以給python新增新的模組、新的類。同時python可以嵌入到c,c++語言開發的專案中,使語言具備指令碼語言的特性。

7. 動態

python不需要另外宣告變數,直接賦值即可以建立一個新的變數。

8. 強型別語言

python會根據賦值表示式的內容決定變數的資料型別。python在內部建立了管理這些變數的機制,出現在同一個表示式的不同型別的變數需要做型別轉換。

9. 應用廣泛

python有許多第三方的庫支援。例如:PIL庫應用於影像處理,numpy庫應用於數學計算,wxpython庫應用於GUI程式的設計,Django庫應用於web程式的開發等。

10. 解釋型語言

就是指令碼了

python核心開發者Tim Peters所總結的“Python之禪”

              The Zen of Python

                  Python 之禪

        Beautiful is better than ugly.

美勝於醜

        Explicit is better than implicit.

顯勝於隱

        Simple is better than complex.

簡勝於繁

        Complex is better than complicated.

繁勝於雜

        Flat is better than nested.

平勝於迭

        Sparse is better than dense.

疏勝於密

        Readability counts.

讀勝於寫

        Special cases aren't special enough to break the rules.

規則勝於特例

        Although practicality beats purity.

實用勝於單純

        Errors should never pass silently.

告錯勝於沉默

        Unless explicitly silenced.

沉默勝於吵鬧

        In the face of ambiguity, refuse the temptation to guess.

拒絕勝於猜測

        There should be one-- and preferably only one --obvious way to do it.

唯一勝於顯然

        Although that way may not be obvious at first unless you're Dutch.

顯然不是荷蘭

        Now is better than never.

現在勝於永不

        Although never is often better than *right* now.

永不勝於匆猝

        If the implementation is hard to explain, it's a bad idea.

凡值得說,必易於說

        If the implementation is easy to explain, it may be a good idea.

反之則不然

        Namespaces are one honking great idea -- let's do more of those! 

名可名, 請常名

相關文章