一 模塊
模塊一共三種:
python標准庫
第三方模塊
應用程序自定義模塊 在cmd命令終端,查看命令os 來自第三方
time模塊來自第三方
模塊兩種執行方式:
1 用於啟動執行
2 用於被調用執行
key:import module:
將執行文件(module)的目錄路徑插入到sys.path的第一個位置
import的兩個過程:
修改調用模塊的名字:import logging as log
from 模塊 import 變量名
from modname import name1[, name2[, ... nameN]]
二 包(package)
模塊非常多,不好找,組織模塊的方式:包
在python中,包可以理解成一個文件夾,但是沒一個文件夾里必須要有
一個__init__文件
2.1 from 包 import 模塊 #格式
但一個py文件和另一個要被引用的文件不在同級目錄里,就用 from 包 import 模塊
#logger.py文件,,被引用的文件
import logging #logging是第三方模塊,
#from log import func
def get_logger():
logger=logging.getLogger()
fh=logging.FileHandler('log.txt')
logger.addHandler(fh)
return logger
print('ok')
get_logger()

附上目錄里面包和.py 文件的樹狀結構

#bin是啟動文件,要引用logger文件 ,不再同級別,就用from 包 import 模塊
#improt logger #直接調用,不在同級目錄下,就無法引用
#from 包 import 模塊 #引入模塊
from log import logger #要用from 這種格式引用logger模塊
logger_obj=logger.get_logger()
logger_obj.error('error')
再調用sc_cal 模塊的方法 ,模塊名+方法(函數) sc_cal.add()

在哪個文件里運行,哪個文件就是啟動文件,就會先從這個文件開始啟動
如果bin的文件位置發生變動,就要再添加路徑
2.2 同級目錄下的被調用模塊之間的相互調用
2.3 if __name__=='__main__':
這個表示執行的是此代碼所在的文件。 如果這個文件是作為模塊被其他文件調用,不會執行這里面的代碼。 只有執行這個文件時, if 里面的語句才會被執行。 這個功能經常可以用於進行測試
1.python文件的后綴為.py;
2..py文件既可以用來直接執行,就像一個小程序一樣,也可以用來作為模塊被導入(比如360安全衛士,就是依靠一個個功能模塊來實現的,好比360安全衛士本身框架是一個桌面,而上面的圖標就是快捷方式,這些快捷方式所指向的就是這一個個功能模塊)
3.在python中導入模塊一般使用的是import
好了,在確定知道以上幾點之后,就可以開始解釋if __name__ == "__main__":這個語句了。
首先解釋一下if,顧名思義,if就是如果的意思,在句子開始處加上if,就說明,這個句子是一個條件語句。學習if語句的使用是很簡單的,當然想要真正靈活運用還需大量的實踐。
接着是 __name__,__name__作為模塊的內置屬性,簡單點說呢,就是.py文件的調用方式。
最后是__main__,剛才我也提過,.py文件有兩種使用方式:作為模塊被調用和直接使用。如果它等於"__main__"就表示是直接執行。
總結:在if __name__ == "__main__":之后的語句作為模塊被調用的時候,語句之后的代碼不執行;直接使用的時候,語句之后的代碼執行。通常,此語句用於模塊測試中使用。
2.4 from 包.包 import 模塊
from 包.包.模塊 import 變量名字
2.5 __init__文件的作用
__init__.py 文件的作用是將文件夾變為一個Python模塊,Python 中的每個模塊的包中,都有__init__.py 文件。
通常__init__.py 文件為空,但是我們還可以為它增加其他的功能。我們在導入一個包時,實際上是導入了它的__init__.py文件。這樣我們可以在__init__.py文件中批量導入我們所需要的模塊,而不再需要一個一個的導入。