包的使用
1.首次導入模塊發(fā)生的事情3件事情
先產生一個執(zhí)行文件的名稱空間:
1.創(chuàng)建模塊文件的名稱空間
2.執(zhí)行模塊文件中的代碼 將產生的名字放入模塊的名稱空間中
3.在執(zhí)行文件中拿到一個指向模塊名稱空間的名字
2.什么是包?
3.首次導入包發(fā)生的事情
首次導入包:
先產生一個執(zhí)行文件的名稱空間
1.創(chuàng)建包下面的__init__.py文件的名稱空間
2.執(zhí)行包下面的__init__.py文件中的代碼 將產生的名字放入包下面的__init__.py文件名稱空間中
3.在執(zhí)行文件中拿到一個指向包下面的__init__.py文件名稱空間的名字
4.為什么要有包?
模塊的第一個版本只有10個功能,但是未來在擴展版本的時候,模塊名和用法應該最好不要去修改,但是這只是對使用者友好,而由于版本擴展,文件越來越大,模塊設計者對模塊的管理、維護會越來越復雜,因此我們可以使用包來擴展模塊的功能。
5.python2和Python3中導入包注意事項
當你在刪程序不必要的文件的時候 千萬不要隨意刪除__init__.py文件
包 == 模塊, 包拿來導入用的
包是含有__init__.py的文件夾; 導包就是導入__init__
''' 包一定是被當作模塊文件導入,模塊文件 m1.py/m2.py 的搜索路徑以執(zhí)行文件 包的介紹.py 路徑為準,在執(zhí)行文件所在的文件夾只能看到包aaa,而找不到包aaa內的m1.py文件。 ''' #包 ##aaa ###__init__.py from m1 import f1 ###m1.py def f1(): print('來自m1中的f1') ##包的介紹.py(執(zhí)行文件) import aaa print(aaa.f1) ''' 打印結果 ModuleNotFoundError: No module named 'm1' '''