廖雪峰python摘錄6

來源:互聯網
上載者:User

標籤:原因   一個   維護   第三方   cto   相同   完全   抽象   ref   

 1 def now(): 2     print(‘hello‘) 3  4 import functools 5  6 def log(func): 7     @functools.wraps(func) 8     def wrapper(*args,**kw): 9         print(‘begin call %s():‘% func.__name__)10         func_tmp=func(*args,**kw)11         print(‘end call %s():‘% func.__name__)12         return func_tmp13     return wrapper

2、簡單總結functools.partial的作用就是,把一個函數的某些參數給固定住(也就是設定預設值),返回一個新的函數,調用這個新函數會更簡單。

3、

使用模組有什麼好處?

最大的好處是大大提高了代碼的可維護性。其次,編寫代碼不必從零開始。當一個模組編寫完畢,就可以被其他地方引用。我們在編寫程式的時候,也經常引用其他模組,包括Python內建的模組和來自第三方的模組。

使用模組還可以避免函數名和變數名衝突。相同名字的函數和變數完全可以分別存在不同的模組中,因此,我們自己在編寫模組時,不必考慮名字會與其他模組衝突。但是也要注意,盡量不要與內建函數名字衝突。點這裡查看Python的所有內建函數。

你也許還想到,如果不同的人編寫的模組名相同怎麼辦?為了避免模組名衝突,Python又引入了按目錄來組織模組的方法,稱為包(Package)。

4、常的函數和變數名是公開的(public),可以被直接引用,比如:abcx123PI等;

類似__xxx__這樣的變數是特殊變數,可以被直接引用,但是有特殊用途,比如上面的__author____name__就是特殊變數,hello模組定義的文檔注釋也可以用特殊變數__doc__訪問,我們自己的變數一般不要用這種變數名;

類似_xxx__xxx這樣的函數或變數就是非公開的(private),不應該被直接引用,比如_abc__abc等;

5、

我們在模組裡公開greeting()函數,而把內部邏輯用private函數隱藏起來了,這樣,調用greeting()函數不用關心內部的private函數細節,這也是一種非常有用的代碼封裝和抽象的方法,即:

外部不需要引用的函數全部定義成private,只有外部需要引用的函數才定義為public。

 6、物件導向最重要的概念就是類(Class)和執行個體(Instance),必須牢記類是抽象的模板,比如Student類,而執行個體是根據類建立出來的一個個具體的“對象”,每個對象都擁有相同的方法,但各自的資料可能不同。

7、class後面緊接著是類名,即Student,類名通常是大寫開頭的單詞,緊接著是(object),表示該類是從哪個類繼承下來的,繼承的概念我們後面再講,通常,如果沒有合適的繼承類,就使用object類,這是所有類最終都會繼承的類。    可以自由地給一個執行個體變數綁定屬性,比如,給執行個體bart綁定一個name屬性。

8、由於類可以起到模板的作用,因此,可以在建立執行個體的時候,把一些我們認為必須綁定的屬性強制填寫進去。通過定義一個特殊的__init__方法,在建立執行個體的時候,就把namescore等屬性綁上去。

9、由於類可以起到模板的作用,因此,可以在建立執行個體的時候,把一些我們認為必須綁定的屬性強制填寫進去。通過定義一個特殊的__init__方法,在建立執行個體的時候,就把namescore等屬性綁上去。

10、如果要讓內部屬性不被外部存取,可以把屬性的名稱前加上兩個底線__,在Python中,執行個體的變數名如果以__開頭,就變成了一個私人變數(private),只有內部可以訪問,外部不能訪問。

11、繼承有什麼好處?最大的好處是子類獲得了父類的全部功能。由於Animial實現了run()方法,因此,DogCat作為它的子類,什麼事也沒幹,就自動擁有了run()方法:

12、當子類和父類都存在相同的run()方法時,我們說,子類的run()覆蓋了父類的run(),在代碼啟動並執行時候,總是會調用子類的run()。這樣,我們就獲得了繼承的另一個好處:多態。   新增一個Animal的子類,不必對run_twice()做任何修改,實際上,任何依賴Animal作為參數的函數或者方法都可以不加修改地正常運行,原因就在於多態。

13、如果要獲得一個對象的所有屬性和方法,可以使用dir()函數,它返回一個包含字串的list

14、

 

廖雪峰python摘錄6

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在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.