五、python使用模組

來源:互聯網
上載者:User

標籤:

if __name__==‘__main__‘:用法:

當我們在命令列運行模組檔案時,Python解譯器把一個特殊變數__name__置為__main__,而如果在其他地方匯入該hello模組時,if判斷將失敗,因此,這種if測試可以讓一個模組通過命令列運行時執行一些額外的代碼,最常見的就是運行測試。

if __name__==‘__main__‘:    test()
範圍

在一個模組中,我們可能會定義很多函數和變數,但有的函數和變數我們希望給別人使用,有的函數和變數我們希望僅僅在模組內部使用。在Python中,是通過_首碼來實現的。

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

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

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

之所以我們說,private函數和變數“不應該”被直接引用,而不是“不能”被直接引用,是因為Python並沒有一種方法可以完全限制訪問private函數或變數,但是,從編程習慣上不應該引用private函數或變數。

private函數或變數不應該被別人引用,那它們有什麼用呢?請看例子:

def _private_1(name):    return ‘Hello, %s‘ % namedef _private_2(name):    return ‘Hi, %s‘ % namedef greeting(name):    if len(name) > 3:        return _private_1(name)    else:        return _private_2(name)

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

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

五、python使用模組

相關文章

聯繫我們

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