python中import,from……import的使用詳解
關(guān)于import,from……import的使用
在使用import和from……import之前需要先明確三個點
- 1.模塊(module):簡單來說就是 .py 文件,里面定義了函數(shù)、變量、類等
- 2.包(package):由多個模塊聚合形成的文件夾,里面可以是多個 .py 文件,也可以是嵌套的文件夾
- 3.庫:指完成一定功能的代碼集合,在python中的形式是模塊和包
import
import用來導(dǎo)入模塊,通過模塊名去調(diào)用py文件中的類或函數(shù)。
1、當(dāng)導(dǎo)入單個模塊時,文件會從上至下的執(zhí)行模塊中的代碼
舉個例子:
#ww.py,模塊名字為ww.py a=1 def yy(q): print( q + 1 )
此時,可以使用 import ww 導(dǎo)入,里面的變量都要用 ww. 前綴,如果不想使用前綴,那么可以使用:from ww import a
2、當(dāng)導(dǎo)入包中的模塊時,首先會執(zhí)行包下的 init.py,這個__init__.py是用來給包做一些初始化的工作的,里面可以是空的,但是必須要有。
3、導(dǎo)入多層包中的模塊時,會執(zhí)行各包下的__init__.py,和2的使用類似。
【注1】必須要有__init__.py這樣可以把包的名字當(dāng)作一個模塊導(dǎo)入,否則程序會將這個文件夾當(dāng)成普通文件夾來處理而不是一個包
【注2】使用__init__.py文件可以將常用的一些變量、函數(shù)、甚至模塊和類導(dǎo)入以方便調(diào)用。
from……import
from……import用來從模塊中導(dǎo)入方法,不僅可以導(dǎo)入模塊,還可以導(dǎo)入模塊中的類,變量或函數(shù)。
- from 模塊 import 方法
- from 包中的模塊 import 方法
- from 包 import *,此時會受__init__.py中的__all__的影響,沒有列出的模塊無法導(dǎo)入引用。且此時不能導(dǎo)入以單下劃線開頭的保護(hù)屬性和以雙下劃線開頭的私有屬性的
舉例說明
我的文件夾的結(jié)構(gòu):
|configs
|--|swin
|----|mask_rcnn.py
|mmdet
|--|models
|----|backbones
|------|ptq
|------|__init__.py
我想要將ptq文件夾里面的一個函數(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é)
以上為個人經(jīng)驗,希望能給大家一個參考,也希望大家多多支持腳本之家。
- python中from module import * 的一個坑
- Python上級目錄文件導(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絕對導(dǎo)入語句
- Python中from…import *和import區(qū)別小結(jié)
相關(guān)文章
pycharm中選中一個單詞替換所有重復(fù)單詞的實現(xiàn)方法
這篇文章主要介紹了pycharm中選中一個單詞替換所有重復(fù)單詞的實現(xiàn)方法,類似于sublime 里的ctrl+D功能,本文通過實例代碼給大家介紹的非常詳細(xì),對大家的學(xué)習(xí)或工作具有一定的參考借鑒價值,需要的朋友參考下吧2020-11-11
Python與Rust混合編程實戰(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)勢,文章探討了多種混合編程的方式,如PyO3、ctypes和Rust-cpython,并通過高性能數(shù)據(jù)處理和Web應(yīng)用后端構(gòu)建等案例展示了如何實現(xiàn)2026-05-05
詳解python調(diào)度框架APScheduler使用
本篇文章主要介紹了詳解python調(diào)度框架APScheduler使用,小編覺得挺不錯的,現(xiàn)在分享給大家,也給大家做個參考。一起跟隨小編過來看看吧2017-03-03

