首页 > 其他分享 >模块简介、模块的两种导入语句、导入文件的补充、判断文件类型、模块的查找顺序

模块简介、模块的两种导入语句、导入文件的补充、判断文件类型、模块的查找顺序

时间:2023-03-08 09:00:26浏览次数:38  
标签:__ 文件 导入 名称 模块 import 文件类型

目录

一、模块的简介

模块的本质

模块就是具有一定功能的py文件
python的模块可以直接导入对应的功能,非常好用,降低了功能实现的难度,在早期,其他语言的程序员喜欢叫python语言的使用者为调包侠,但是后来由于python调包的功能可以实现很复杂的功能,也变得使用面更为广泛了,其他语言的程序员也开始使用python

模块的多种表现形式

1.py文件
2.包(包含py文件的文件夹,内部有双下init
3.被编译为共享库或ddl的c或c++扩展
4、使用c语言编写并链接到python解释器的内置模块

二、模块的两种导入语句

import 模块名称
from 模块名称 import 名称

两种模块在导入单个的py文件的时候需要注意,import是导入整个模块,from是导入单个的名称
在使用的时候可以看到,import方式导入的模块需要在用:模块名称.名称的形式来调用,from可以直接用名称调用,如果想要调所有的名称,可以用*号代替。使用星号的时候也可以用双下all来设置外界能获得的名称,但是不能影响到import方式导入的模块
import在使用的时候相当于给这个执行文件一个模块名称,然后另外建立了一个名称空间存放自己的名称,当调用模块中的名称就传过去。如果使用from方式的话就会直接把这个名称传给被执行文件的全局名称空间,如果有重复的名称会产生名称的顶替

三、导入文件的补充

当我们在调用多个模块的时候,可以用逗号隔开,连写多个,但是需要注意,最好根据模块的功能来编写,功能相似的一起导入

导入模块的时候如果名称很复杂,我们可以用as 名称的方式进行重命名,在代码中调用的时候用这个自己命名的名称就可以达成目的

如果重复导入模块,容易出现错误,因此不推荐,但是真的遇到的时候,需要知道还是一样的流程,还是从执行文件运行,到了导入模块之后运行被导入文件,在被导入文件中出现导入执行文件的动作,这个时候就是在走一遍执行文件的代码,然后再运行导入文件中导入语句后面的代码,执行完导入文件后回到执行文件中运行导入文件后面的代码。中间运行的时候还要注意导入语句的位置,不能出现先调用后定义的情况。

四、判断文件类型

在运行模块导入操作的时候我们需要分清楚哪个是执行文件哪个是模块文件,这里用到了一个方法
双下name,当这个方法出现在执行文件中会返回双下main,当这个方法出现在模块文件中会返回模块名称

# 判断当前文件是执行文件还是导入文件

__name__在不同的文件中,结果是不一样的
    在执行文件中,结果是 __main__
    在导入文件中,结果是:模块名
    
if __name__ == '__main__':
    print('当前是执行文件')
    
if __name__ == '__main__':
    print('123')

五、模块的查找顺序

内存

内存中的已经运行起来的模块会先被使用,我们可导入模块然后使用time.sleep停止几秒,期间删除模块文件,最后会发现程序仍能运行一次

内置模块

当我们在使用模块的时候会先去内置模块中查找,这里需要注意,如果我们的创建的模块名称跟内置模块的一样,会导致模块不被调用,被调用的会是内置模块

sys.path

这是python 解释器的环境变量,也就是一个查找的路径,在前两个地方找不到就会根据这里的路径来查找模块,如果找不到就会报错

内存>>>内置>>>sys.path

当查找模块找不到的时候,如何解决?

# 1. 把模块所在的路径添加到环境变量中
import sys
sys.path.append('')
2. from 模块名1.模块名2 import 模块3

标签:__,文件,导入,名称,模块,import,文件类型
From: https://www.cnblogs.com/oiqwyig/p/17190657.html

相关文章

  • urllib.parse:很底层,但是是一个处理url路径的好模块
    介绍urllib.parse是为urllib包下面的一个模块,urllib的其它模块完全可以使用requests替代。但是urlli.parse我们是有必要了解的,因为该模块下面有很多操作url路径的方法ur......
  • Dubbo Remoting模块详解
    1Dubbo整体架构设计dubbo-remoting模块提供多种客户端和服务端通信功能。最底层部分即为Remoting层:包括Exchange、Transport和Serialize三层。本文主要描述Exchange......
  • 模块与包
    模块简介什么是模块python模块是一系列功能的结合体,一个py文件就是一个模块,导入模块可以引用模块中已经写好的功能;在需要的时候可以直接拿来套用,比如说,模块就是已经洗好......
  • 通过HHDESK,将IPad上的图片导入到个人电脑
    IOS与PC的跨系统“沟壑”一直是一件令人头疼的事情。虽然可以使用微信等工具,实现小文件的传输,但大容量传输,以及在不能联互联网的情况下,跨系统传输依旧不方便。比如,Ios的图......
  • BOSHIDA 模块电源的分类(三)
    BOSHIDA三河博电科技模块电源的分类(三)AC/DC电源模块的基本原理是从交流源中获取电压,然后由整流器转换为直流电压,且输出能量比输入的电压高,从而达到电路输出直流电压、......
  • JavaScript核心功能之模块的导入导出
    一、模块的概念模块是将JavaScript程序拆分为可按需导入的单独模块的机制。 二、如何创建模块模块是定义在单独的.js文件中的。 三、export导出模块的两种方式1、将expo......
  • JavaScript核心功能之模块命名冲突的解决方式
    避免模块命名冲突的三种解决方式方式一:使用as重命名导出与导入在你的import和export语句的大括号中,可以使用as关键字跟一个新的名字,来改变你在顶级模块中将要使用的功......
  • JavaScript核心功能之模块的应用
    应用模块到你的HTML脚本中的两种方式: 方式一:将type="module"放到<script>标签中,来声明这个脚本是一个模块<scripttype="module"src="main.js"></script>方式二:将模块......
  • 如何导入第三方模块
    如何导入第三方模块,以PyCharm2022.1.3(CommunityEdition)为例一、命令行配置:路径\python.exe-mpipinstall--upgradepip默认是从国外网站安装更新pip路径\pytho......
  • python-模块与包
    一、模块模块的本质:具有一定功能(代码)的py文件,或者是文件夹,就是你之前写的代码有功能的都可以叫模块1、python模块的历史python刚开始的时候,所有搞其他编程语言的的程序......