閱讀目錄
一。模組和指令碼
模組:定義:如果乙個py檔案被匯入了,他就是乙個模組
指令碼:定義:如果乙個py檔案被直接執行了,那他就是乙個指令碼
模組:1.沒有具體的呼叫過程
2.但是能對外提供功能
當乙個模組被匯入時,如果pyc檔案不存在,python直譯器就回去建立,存在不會再次被建立
pyc編譯檔案: 檔案 -位元組碼-機器碼
編譯的具體過程:
1.從上到下編譯成位元組碼pyc
2.從上到下,解釋執行**
為什麼要編譯# 1.乙個檔案如果作為模組 一定會經常被匯入
# 2.每次被匯入都要經歷乙個被編譯的過程
# 3.包.編譯耗費時間
# 4.所以模組在被第一次匯入的時候被編譯存在pyc檔案裡
# 5.之後的匯入可以直接吶pyc檔案中的位元組碼,就可以直接執行了
# 編譯檔案 在模組匯入的一瞬間 能夠提高**的執行速度
# 不能提高程式在具體執行的時候的效率
引入模組必須滿足兩個條件:
1.模組名必須滿足變數名的命名規範
2.被匯入的模組所在的位置必須在sys.path所在的搜尋路徑中
當login模組被當做指令碼執行的時候,能夠獨立完成登陸功能# 當login模組被當做模組匯入的時候,需要等待呼叫才能完成功能
# 當乙個模組被當做指令碼執行的時候,__name__是乙個字串資料型別的'__main__'
# 當乙個模組被當做模組匯入的時候,__name__是乙個字串資料型別模組名
if __name__ == '__main__':
log_in()
# print('__name__ : ',repr(__name__))
# if __name__ == '__main__':
# 控制了
# 只要當前這個檔案直接被執行 就會執行if條件語句內的**
# 否則 就不會執行if條件語句內的**
模組是對外提供功能的# 如果 我寫的這個模組 足夠大 能提供的功能足夠多
# 多到乙個檔案寫不下
# 把對外提供的功能 根據提供的內容不同,分成幾個檔案
# 把這些檔案放在乙個資料夾下,就形成了包
# django框架 包
# 運算元據庫的 模組
# 和web頁面互動的 模組
# 登入認證 模組
# 安全的中介軟體 模組
# 匯入具體的檔案
# from glance.api import policy
# policy.get()
## import glance.api.policy as policy
# # glance.api.policy.get()
# policy.get()
# 直接匯入包
import sys
print(sys.path)
# import glance
# 使用絕對路徑
# 匯入乙個包 相當於 執行了這個包下面的 __init__.py
# glance #物件
# glance.api.policy.get()
# glance.cmd.manage.main()
# sys.path
from new_pac import glance
# 絕對路徑
# 被直接執行的檔案與包的關係必須是固定的,
# 一旦發生改變,包內的所有關係都要重新指定
# 跨包引用
# import sys
# print(sys.path)
# 在乙個py檔案中使用了相對路徑引入乙個模組# 那麼這個檔案就不能被當成指令碼執行了
# 包就是py模組的集合# 自帶__init__.py檔案
# py2 包中必須有乙個__init__.py檔案
# py3
# 能不能匯入乙個包:要看sys.path中的路徑下有沒有這個包
# 從包中匯入模組: 把包與包之間的關係寫清楚,精確到模組,就一定能匯入
# 直接匯入乙個包,並不會匯入包下的模組,而是執行這個包下的__init__.py檔案
# 如果對匯入還有更高的要求
# 可以對包中的__init__.py檔案做定義
# 絕對路徑匯入的方式
# 相對路徑匯入的方式 使用相對路徑匯入的模組不能作為指令碼執行
from new_pec2 import glance
day29 學習總結
編譯時期異常 語法問題,需要開發人員顯示處理 執行時期異常 runtimeexception繼承自exception第一種 捕獲異常 trycatch 異常類名 物件名 finally 第二種 丟擲異常 throws throw 注意 開發中,多使用第一種方法1.位置不同 throws 位於方法宣告...
Java學習日記DAY29
多型 1.向上轉型 隱式轉型 自動轉型 父類引用指向子類例項,可以呼叫子類重寫父類的方法以及父類派生的方法,無法呼叫子類獨有方法 注意 父類中的靜態方法無法被子類重寫,所以向上轉型之後,只能呼叫到父類原有的靜態方法,想要呼叫子類中的靜態方法需要重新向下造型 小類轉型為大類 2.向下轉型 強制型別轉換...
牛客網刷題day29
1.given the following class public class cat public static void main string arg which expression returns true?b a.c1c2 b.c2c3 c.m c1 d.c1.equals m 解析 ...