Python模塊介紹

模塊

1.模塊定義
	用來從邏輯上組織python代碼(變量,函數,類,邏輯:實現一個功能),本質上就是.py結尾python文件

	分類:內置模塊(又稱標準庫)執行 help('modules')查看全部python自帶模塊列表
		 第三方開源模塊,可經過 pip install 模塊名   聯網安裝
		 自定義模塊


2.導入模塊
	本質:導入模塊的本質就是把python文件解釋一遍,
		 導入包的本質就是把包文件下面的init.py文件運行一遍。

		 1)同目錄下模塊的導入
		 	#同級目錄下模塊的導入

		 	import module_name   #直接導入模塊
		 	import module1_name,module2_name  #導入多個模塊  使用:模塊名.函數名
		 	from modeule_name import * #導入模塊中全部函數和變量等。。。不推薦使用
		 	from modeule_name import m1,m2,m3 #只導入模塊中函數m1,m2,m3 使用:直接使用m1,m2,m3就能夠
		 	from modeule_name import m1 as m #導入module_name模塊中函數m1而且將函數從新複製給m 使用:直接用調用m

		 2)不一樣目錄下模塊的導入
		 	#不一樣目錄下模塊的導入  當前文件main.py

		 	#目錄結構
			# ├── Credit_card
			# │
			# ├── core  
			# │   ├── __init__.py
			# │   └── main.py  # 當前文件
			# ├── conf  
			# │   ├── __init__.py
			# │   └── setting.py
			# │   └── lzl.py
			
			import sys,os
			#獲取當前目錄的上上級目錄絕對路徑,也就是Credit_card
			credit_card_path = os.path.dirname(os.path.dirname(os.path.abspath(__file__)))
			#把Credit_card目錄加入到系統路徑
			sys.path.insert(0,credit_card_path)

			#查看系統環境路徑
			print(sys.path)

			例子:
				若是main文件夾要用conf文件夾下的setting文件,直接導入是不行的
				應該:
					fron conf import setting
					setting.函數名()  #這樣執行setting模塊中的函數

		3)不一樣目錄下模塊連環導入
			#不一樣目錄多個模塊之間互相導入

			#目錄結構
			# ├── Credit_card
			# │
			# ├── core  
			# │   ├── __init__.py
			# │   └── main.py  # 當前文件
			# ├── conf  
			# │   ├── __init__.py
			# │   └── setting.py
			# │   └── lzl.py

			若是在setting文件中調用模塊lzl.py,能夠用語句 import lzl,可是若是這樣,
			咱們在main.py文件中調用setting文件時,就會報錯#ImportError: No module named 'lzl'
			這個時候咱們須要將 import lzl  換爲  from . import lzl 
			而後main.py文件中調用setting文件時,才能夠正常執行。

		4)不一樣目錄多個模塊相互導入,用相對路徑

			Root
			    ├── Credit_card
			            ├── README.md
			            ├── core 
			            │   ├── __init__.py
			            │   └── main.py 
			            ├── conf 
			            │   ├── __init__.py
			            │   └── setting.py
			            │   └── lzl.py     


			lzl.py文件內容:   
					def name():
    					print("name is lzl")

    		setting.py文件內容:
    				#當前文件settings,調用lzl.py模塊  相對路徑
					from . import lzl       #經過相對路徑導入模塊lzl
					def set():
					    print("in the settings")
					    lzl.name()   #運行lzl模塊下的函數

					set()  #執行函數set

			Core目錄下的文件中的mian.py文件內容:
					#不一樣目錄之間連環import 當前文件main.py  相對路徑

					from Root.Credit_card.conf import settings
					settings.set()   #執行settings下的函數


			注意:
				lzl.py以及settings.py文件未變,main.py文件去掉了繁雜的sys.path添加的過程,
				直接執行from Root.Credit_card.conf import settings,使用相對路徑,更加
				簡潔方便!
相關文章
相關標籤/搜索