Python:import详解
Python中import機制
Python語言中import的使用很簡單,直接使用import module_name語句導入即可。這里我主要寫一下”import”的本質。
Python官方定義:Python code in one module gains access to the code in another module by the process of importing it.
1.定義:
模塊(module):用來從邏輯(實現一個功能)上組織Python代碼(變量、函數、類),本質就是*.py文件。文件是物理上組織方式”module_name.py”,模塊是邏輯上組織方式”module_name”。
包(package):定義了一個由模塊和子包組成的Python應用程序執行環境,本質就是一個有層次的文件目錄結構(必須帶有一個_init_.py文件)。
2.導入方法
方法使用別名時,使用”new_name()”調用函數,文件中可以再定義”module_element()”函數。
3.import本質(路徑搜索和搜索路徑)
module_test01.py
# -*- coding:utf-8 -*- import module_nameprint("This is module_test01.py") print(type(module_name)) print(module_name) 運行結果: E:\PythonImport>python module_test01.py This is module_name.py This is module_test01.py <class 'module'> <module 'module_name' from 'E:\\PythonImport\\module_name.py'>在導入模塊的時候,模塊所在文件夾會自動生成一個pycache\module_name.cpython-35.pyc文件。
“import module_name” 的本質是將”module_name.py”中的全部代碼加載到內存并賦值給與模塊同名的變量寫在當前文件中,這個變量的類型是’module’;
module_test02.py# -*- coding:utf-8 -*- from module_name import nameprint(name)運行結果;
E:\PythonImport>python module_test02.py This is module_name.py Hello“from module_name import name” 的本質是導入指定的變量或方法到當前文件中。
package_name / __init__.py# -*- coding:utf-8 -*-print("This is package_name.__init__.py") module_test03.py# -*- coding:utf-8 -*- import package_nameprint("This is module_test03.py")運行結果:
E:\PythonImport>python module_test03.py This is package_name.__init__.py This is module_test03.py"import package_name"導入包的本質就是執行該包下的__init__.py文件,在執行文件后,會在"package_name"目錄下生成一個"__pycache__ / __init__.cpython-35.pyc" 文件。package_name / hello.py
# -*- coding:utf-8 -*-print("Hello World")package_name / __init__.py # -*- coding:utf-8 -*- # __init__.py文件導入"package_name"中的"hello"模塊 from . import hello print("This is package_name.__init__.py") 運行結果: E:\PythonImport>python module_test03.py Hello World This is package_name.__init__.py This is module_test03.py在模塊導入的時候,默認現在當前目錄下查找,然后再在系統中查找。系統查找的范圍是:sys.path下的所有路徑,按順序查找。
4.導入優化
多個函數需要重復調用同一個模塊的同一個方法,每次調用需要重復查找模塊。所以可以做以下優化:
module_test05.py # -*- coding:utf-8 -*- from module_name import hello def a():hello()print("fun a")def b():hello()print("fun b")a() b() 運行結果: E:\PythonImport>python module_test04.py This is module_name.py Hello fun a Hello fun b可以使用”from module_name import hello”進行優化,減少了查找的過程。
5.模塊的分類
內建模塊
非內建函數需要使用”import”導入。Python中的模塊文件在”安裝路徑\Python\Python35\Lib”目錄下。
第三方模塊
通過”pip install “命令安裝的模塊,以及自己在網站上下載的模塊。一般第三方模塊在”安裝路徑\Python\Python35\Lib\site-packages”目錄下。
自定義模塊
總結
以上是生活随笔為你收集整理的Python:import详解的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: Python学习笔记:Day 6 配置文
- 下一篇: android 华为手机灭屏搜索不到蓝牙