python中import,from……import的使用詳解
關(guān)于import,from……import的使用
在使用import和from……import之前需要先明確三個(gè)點(diǎn)
- 1.模塊(module):簡(jiǎn)單來(lái)說(shuō)就是 .py 文件,里面定義了函數(shù)、變量、類等
- 2.包(package):由多個(gè)模塊聚合形成的文件夾,里面可以是多個(gè) .py 文件,也可以是嵌套的文件夾
- 3.庫(kù):指完成一定功能的代碼集合,在python中的形式是模塊和包
import
import用來(lái)導(dǎo)入模塊,通過(guò)模塊名去調(diào)用py文件中的類或函數(shù)。
1、當(dāng)導(dǎo)入單個(gè)模塊時(shí),文件會(huì)從上至下的執(zhí)行模塊中的代碼
舉個(gè)例子:
#ww.py,模塊名字為ww.py a=1 def yy(q): print( q + 1 )
此時(shí),可以使用 import ww 導(dǎo)入,里面的變量都要用 ww. 前綴,如果不想使用前綴,那么可以使用:from ww import a
2、當(dāng)導(dǎo)入包中的模塊時(shí),首先會(huì)執(zhí)行包下的 init.py,這個(gè)__init__.py是用來(lái)給包做一些初始化的工作的,里面可以是空的,但是必須要有。
3、導(dǎo)入多層包中的模塊時(shí),會(huì)執(zhí)行各包下的__init__.py,和2的使用類似。
【注1】必須要有__init__.py這樣可以把包的名字當(dāng)作一個(gè)模塊導(dǎo)入,否則程序會(huì)將這個(gè)文件夾當(dāng)成普通文件夾來(lái)處理而不是一個(gè)包
【注2】使用__init__.py文件可以將常用的一些變量、函數(shù)、甚至模塊和類導(dǎo)入以方便調(diào)用。
from……import
from……import用來(lái)從模塊中導(dǎo)入方法,不僅可以導(dǎo)入模塊,還可以導(dǎo)入模塊中的類,變量或函數(shù)。
- from 模塊 import 方法
- from 包中的模塊 import 方法
- from 包 import *,此時(shí)會(huì)受__init__.py中的__all__的影響,沒有列出的模塊無(wú)法導(dǎo)入引用。且此時(shí)不能導(dǎo)入以單下劃線開頭的保護(hù)屬性和以雙下劃線開頭的私有屬性的
舉例說(shuō)明
我的文件夾的結(jié)構(gòu):
|configs
|--|swin
|----|mask_rcnn.py
|mmdet
|--|models
|----|backbones
|------|ptq
|------|__init__.py
我想要將ptq文件夾里面的一個(gè)函數(shù)(BIT_TYPE_DICT)導(dǎo)入到mask_rcnn.py模塊里
那么我需要:
- 在__init__.py里面導(dǎo)入此函數(shù):from .ptq import BIT_TYPE_DICT
- 在mask_rcnn.py里導(dǎo)入此函數(shù):from mmdet.models.backbones import BIT_TYPE_DICT
- 將BIT_TYPE_DICT函數(shù)添加到__init__.py的__all__ = []里面
總結(jié)
以上為個(gè)人經(jīng)驗(yàn),希望能給大家一個(gè)參考,也希望大家多多支持腳本之家。
- python中from module import * 的一個(gè)坑
- Python上級(jí)目錄文件導(dǎo)入的幾種方法(from.import)
- python中import和from-import的區(qū)別解析
- python中的import、from import及import as的區(qū)別解析
- python3中_from...import...與import?...之間的區(qū)別詳解(包/模塊)
- Python import與from import使用和區(qū)別解讀
- python中import與from方法總結(jié)(推薦)
- 詳解Python中的from..import絕對(duì)導(dǎo)入語(yǔ)句
- Python中from…import *和import區(qū)別小結(jié)
相關(guān)文章
python中(負(fù)數(shù))整除和取模運(yùn)算方式
Python中的取模運(yùn)算符是%,它與其他語(yǔ)言中的取余符號(hào)相同,整除運(yùn)算符是//,表示向下取整,在Python中,正數(shù)的取余和取模結(jié)果相同,但負(fù)數(shù)的取余和取模結(jié)果有所不同,取余運(yùn)算在計(jì)算時(shí)向0方向舍棄小數(shù)位,而取模運(yùn)算向負(fù)無(wú)窮方向舍棄小數(shù)位2024-10-10
pycharm中選中一個(gè)單詞替換所有重復(fù)單詞的實(shí)現(xiàn)方法
這篇文章主要介紹了pycharm中選中一個(gè)單詞替換所有重復(fù)單詞的實(shí)現(xiàn)方法,類似于sublime 里的ctrl+D功能,本文通過(guò)實(shí)例代碼給大家介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友參考下吧2020-11-11
Python實(shí)現(xiàn)迷宮生成器的詳細(xì)代碼
這篇文章主要介紹了Python實(shí)現(xiàn)迷宮生成器的詳細(xì)代碼,本文給大家介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下2022-07-07
Python與Rust混合編程實(shí)戰(zhàn):高性能數(shù)據(jù)處理和Web應(yīng)用后端構(gòu)建等案例
本文介紹了將Rust與Python結(jié)合使用的方法,強(qiáng)調(diào)了Python在開發(fā)效率和生態(tài)系統(tǒng)方面的及Rust在性能和安全性方面的優(yōu)勢(shì),文章探討了多種混合編程的方式,如PyO3、ctypes和Rust-cpython,并通過(guò)高性能數(shù)據(jù)處理和Web應(yīng)用后端構(gòu)建等案例展示了如何實(shí)現(xiàn)2026-05-05
詳解python調(diào)度框架APScheduler使用
本篇文章主要介紹了詳解python調(diào)度框架APScheduler使用,小編覺得挺不錯(cuò)的,現(xiàn)在分享給大家,也給大家做個(gè)參考。一起跟隨小編過(guò)來(lái)看看吧2017-03-03

