【python 物件導向】 python物件學習筆記《1》
模組和包
模組 Module 就是一個簡單的python檔案,模組裡面可以定義各種類 class 和函式。
import 語句用來匯入模組或者從模組裡面匯入特定的類或函式;也可以用 from…import 語句來匯入模組 module 下的一個類,
例如:
import database
db = database.Database()
等價於:
from database import Database()
db = Database()
如果名字衝突,再匯入的時候可以自己改名字,使用 from … import…as 語句。
如果要匯入一個模組下所有的類和函式,使用 from.. import * 語句,不過一般不要使用這種語法,這樣如果程式碼量一大,在尋找類的時候就會花去很多不必要的時間,也有另外的表達是“使得名稱空間混亂”。
當我們的模組 module 越來越多不方便管理的時候,我們可以建立一個包 package 來放置內容主題相關聯的 模組(python檔案),包就是一個資料夾,但包括了一個名叫 _ init _.py的檔案(通常為空)。沒有這個檔案,python無法識別這個資料夾從而無法匯入模組。
絕對匯入和相對匯入
絕對匯入 需要指明這個模組、函式的完整路徑。
import語句使用點號 ‘.’ 來作為分隔符分隔 package 或者 module
相對匯入 如果我們想匯入關於當前工作模組附近的模組,而又不想指明完整的絕對路徑,那麼就可以選擇相對匯入的方式
例如我們當前工作的模組叫 a.py ,要呼叫當前包 package 裡的另一個模組 b.py 中的函式B:
from .b import B
如果呼叫父包裡的c模組的C函式,那麼就要帶上兩個點:
from ..c import C
可以通過更多的點 . 來訪問層級更上的包。
當匯入模組的時候,模組裡面的所有程式碼都會被立即執行,但如果模組裡面的是一個方法或者函式,會建立這個函式,但函式裡面的程式碼只有到函式被呼叫的時候才會執行。當我們正在執行某一個程式,而恰好想著從另一個模組匯入一個類(只想訪問),匯入的過程中被匯入的模組裡的程式碼被立即執行,這樣可能會使我們當前執行的程式碼程式終止掉。
為了解決這個問題,我們應該總是把要啟動的程式碼放到一個函式裡面(通常叫main函式),並且當我們知道這是在執行指令碼的時候,才去執行這個main函式,而不是在其他指令碼匯入的時候。這裡我們要知道:
- 每一個模組都有一個特殊的變數 __name__ , 在匯入這個模組的時候,__name__ 變數指明瞭模組的名字,當這個模組直接通過python 執行的時候,就不會匯入這個變數,而這時__name__變數就賦值給一個字串 “__main__” ,而不再是模組名字了。這段話再簡單通俗的來說:
if__name__ == '__main__'
的意思是:當.py檔案被直接執行時,if __name__ == '__main__'
之下的程式碼塊將被執行;當.py檔案以模組形式被匯入時,if __name__ == '__main__'
之下的程式碼塊不被執行.
這樣你把所有的程式碼都包在if __name__ == '__main__'
,就不用擔心呼叫的時候把自己當前的程式中斷了
參考 : 如何簡單地理解Python中的if name == ‘main’
相關文章
- Python學習筆記|Python之物件導向Python筆記物件
- Python 3 學習筆記之——物件導向Python筆記物件
- Python 物件導向筆記Python物件筆記
- Python 學習筆記之類「物件導向,超類,抽象」Python筆記物件抽象
- Python3:物件導向程式設計學習筆記(2)Python物件程式設計筆記
- python第五次筆記---物件導向Python筆記物件
- Python——物件導向Python物件
- Python物件導向Python物件
- python 物件導向Python物件
- Flutter學習筆記(8)--Dart物件導向Flutter筆記Dart物件
- js高階 物件導向 學習筆記JS物件筆記
- 草根學Python(九) 物件導向Python物件
- Python學習之物件導向程式設計Python物件程式設計
- Python物件導向程式設計(1)Python物件程式設計
- 物件導向筆記物件筆記
- 從零開始的Python學習Episode 18——物件導向(1)Python物件
- python物件導向(一)Python物件
- python物件導向(下)Python物件
- python物件導向一Python物件
- Python物件導向(上)Python物件
- python物件導向練習題01Python物件
- python物件導向思想(類與物件)Python物件
- Python學習之路——類-物件導向程式設計Python物件程式設計
- Python物件導向三大特性是什麼?Python學習教程!Python物件
- Python學習筆記 9.0 模組 與 包 與 物件導向版學員管理系統Python筆記物件
- python物件導向[基礎]Python物件
- Python 物件導向介紹Python物件
- Python物件導向知多少?Python物件
- python 初識物件導向Python物件
- 【Python】5.物件導向的PythonPython物件
- 【廖雪峰python進階筆記】物件導向程式設計Python筆記物件程式設計
- python-程式導向、物件導向、類Python物件
- Python學習之物件導向高階程式設計Python物件程式設計
- Go 筆記之物件導向Go筆記物件
- 學習Rust 物件導向Rust物件
- Python物件導向程式設計Python物件程式設計
- Python物件導向三大特性Python物件
- 2.1.0 Python初識物件導向Python物件