国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁(yè) > 編程 > Python > 正文

Python中import機(jī)制詳解

2020-02-16 10:42:07
字體:
來(lái)源:轉(zhuǎn)載
供稿:網(wǎng)友

Python語(yǔ)言中import的使用很簡(jiǎn)單,直接使用 import module_name 語(yǔ)句導(dǎo)入即可。這里我主要寫(xiě)一下"import"的本質(zhì)。

Python官方

定義:Python code in one module gains access to the code in another module by the process of importing it.

1.定義:

模塊(module):用來(lái)從邏輯(實(shí)現(xiàn)一個(gè)功能)上組織Python代碼(變量、函數(shù)、類),本質(zhì)就是*.py文件。文件是物理上組織方式"module_name.py",模塊是邏輯上組織方式"module_name"。

包(package):定義了一個(gè)由模塊和子包組成的Python應(yīng)用程序執(zhí)行環(huán)境,本質(zhì)就是一個(gè)有層次的文件目錄結(jié)構(gòu)(必須帶有一個(gè)__init__.py文件)。

2.導(dǎo)入方法

# 導(dǎo)入一個(gè)模塊import model_name# 導(dǎo)入多個(gè)模塊import module_name1,module_name2# 導(dǎo)入模塊中的指定的屬性、方法(不加括號(hào))、類from moudule_name import moudule_element [as new_name]

方法使用別名時(shí),使用"new_name()"調(diào)用函數(shù),文件中可以再定義"module_element()"函數(shù)。

3.import本質(zhì)(路徑搜索和搜索路徑)

moudel_name.py

# -*- coding:utf-8 -*-print("This is module_name.py")name = 'Hello'def hello():  print("Hello")module_test01.py# -*- coding:utf-8 -*-import module_nameprint("This is module_test01.py")print(type(module_name))print(module_name)

運(yùn)行結(jié)果:

E:/PythonImport>python module_test01.pyThis is module_name.pyThis is module_test01.py<class 'module'><module 'module_name' from 'E://PythonImport//module_name.py'>

在導(dǎo)入模塊的時(shí)候,模塊所在文件夾會(huì)自動(dòng)生成一個(gè)__pycache__/module_name.cpython-35.pyc文件。

"import module_name" 的本質(zhì)是將"module_name.py"中的全部代碼加載到內(nèi)存并賦值給與模塊同名的變量寫(xiě)在當(dāng)前文件中,這個(gè)變量的類型是'module';<module 'module_name' from 'E://PythonImport//module_name.py'>

module_test02.py

# -*- coding:utf-8 -*-from module_name import nameprint(name)

運(yùn)行結(jié)果;
E:/PythonImport>python module_test02.py
This is module_name.py
Hello
"from module_name import name" 的本質(zhì)是導(dǎo)入指定的變量或方法到當(dāng)前文件中。

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")

運(yùn)行結(jié)果:

E:/PythonImport>python module_test03.pyThis is package_name.__init__.pyThis is module_test03.py

"import package_name"導(dǎo)入包的本質(zhì)就是執(zhí)行該包下的__init__.py文件,在執(zhí)行文件后,會(huì)在"package_name"目錄下生成一個(gè)"__pycache__ / __init__.cpython-35.pyc" 文件。

package_name / hello.py

# -*- coding:utf-8 -*-print("Hello World")package_name / __init__.py# -*- coding:utf-8 -*-# __init__.py文件導(dǎo)入"package_name"中的"hello"模塊from . import helloprint("This is package_name.__init__.py")            
發(fā)表評(píng)論 共有條評(píng)論
用戶名: 密碼:
驗(yàn)證碼: 匿名發(fā)表
主站蜘蛛池模板: 武强县| 沿河| 洛浦县| 思茅市| 比如县| 会同县| 山西省| 宁河县| 西青区| 灵璧县| 泾川县| 富裕县| 肇源县| 黄山市| 万州区| 溆浦县| 阿巴嘎旗| 尖扎县| 县级市| 拉孜县| 上虞市| 砚山县| 塔城市| 三门县| 韩城市| 嵊泗县| 松溪县| 漳浦县| 扬中市| 济南市| 綦江县| 叙永县| 吉安县| 盖州市| 昆山市| 遵义市| 太谷县| 甘泉县| 尼勒克县| 马鞍山市| 乌苏市|