模块的介绍

article/2025/8/22 10:56:01

模块简介

1.什么是模块

        模块就是以 .py 结尾的文件里面定义好功能的函数和对象看成一个结合体,当用户调用模块就相当于拥有了这个模块里面的所有功能。

2.模块的分类

        内置模块:

                解释器内自带的模块 可以直接调用 如:time、random

        自定义模块:

                自己写的模块可以自己定义功能 如:登陆功能、删除功能、修改功能

        第三方模块:

                别人写好的模块需要用这个功能时得提前从网上下载好 如:numpy、install

        

3.模块的表现形式

1.以.py文件结尾(py文件也可以称之为是模块文件)

2.含有多个py文件的文件夹(按照每个模块都功能不同划分不同的文件夹)

3.已被编译为共享库或DLL的C或C++扩展(了解)

4.使用C编写并链接到python解释器的内置模块(了解)

 模块的导入句势

1.导入模块句式1:

        import 模块名1,模块名2,模块名3.......

        

import time 
import time 
import time
'''一个程序中重复导入同一个模块 
导入语句只会执行一次'''

执行导入流程:

第一步:会产生执行文件的名称空间
第二步:产生被导入文件的名称空间并运行该文件内所有的代码 存储名字
第三步:在执行文件中会获取一个模块的名字 通过该名字点的方式就可以使用到被导入文件名称空间中的名字

ps:在项目中所有的py文件名都得是英文,py文件被当做模块导入的时候不需要考虑后缀。

2.导入模块句式2:

        from 模块名 import 成员1,成员2,成员3........

from time import sleep 

执行导入流程:

第一步:创建执行文件的名称空间
第二步:创建被导入文件的名称空间
第三步:执行被导入文件中的代码 将产生的名字存储到被导入文件的名称空间中
第四步:在执行文件中获取到指定的名字 指向被导入文件的名称空间

3.两种导入句式的优缺点

import:

        优点:导入的模块可以调用到模块内的所有名字不会发生冲突

        缺点:会导入模块内所有的名字但有时候不想让所有名字被使用

from 模块名 import 成员名:

        优点:能指名道姓的导入指定的名字 调用时不需要加模块名前缀

        缺点:名字容易发生冲突导致绑定关系被修改

4.导入句势小知识

1.用as起别名

        在导入句势中可以通过as来给带入的模块文件名起一个自定义名字

import numpy as np
'''将模块名简写,方便在代码中的调用'''from numpy import array as np_ar
'''将numpy中的array名起一个别名 np_ar'''

2.导入多个名字

import time
import numpy
import torch
'''导入多个功能不相似的模块,
相似模块可直接 import 模块名1,模块名2,模块名3 导入'''from torch import nn,optim  '''从一个模块文件中导入多个名字'''

3.*全导入

        当只能用from...import句式导入模块中所有名字时需要用*符号

from numpy import *
'''表示将numpy内的所有名字都导入'''

ps:可以使用__all__=[字符串的名字]控制*能够获取的名字

循环导入

1.举例循环导入报错现象:

代码执行流程:

ps:因为还未定义就被调用发生报错所以只需要在调用前先定义就可以解决。

2.解决方式

ps:所以在循环导入前就要把所有名字提前定义好,这里要注意的点是会重复打印两次。

 判断文件类型

1.__name__内置名:

        在程序运行中有时候需要用到的文件会有很多,每个文件中自带__name__因此我们可以用__name__来进行判断。

当 __name__的结果是__main__时 py文件是执行文件

当 __name__的结果是模块名(文件名)时 py文件是导入文件

2.测试自己的代码:

if __name__ == '__main__':'''当被测试文件是执行文件时才会执行if当子代码'''
'''此方法一般只出现在整个程序的启动文件中'''

 小知识:在pycharm中写入main后按tab键会自动补全

 模块的查找顺序

1.先在内存中查找

        eg:导入一个文件过程中删除该文件后依然可以运行,但是再次重新运行时就会报错

import aa
import timetime.sleep(20)
print(aa.n)'''
当在运行时删除aa.py文件程序依旧打印,但是再次运行则报错
'''

2.再到内置中查找

        eg:当定义了一个和内置模块名相同的文件名时,导入模块优先导内置模块的

'''先定义一个time.py文件
里面有一个time = '我是自定义的'
'''
import time
print(time.time())'''打印结果依然是时间栓
1657711806.7256792
'''

ps:所以在创建模块文件的时候不要和内置模块名冲突

3.最后去sys.path中查找(程序系统环境变量)

        eg:导入模块的时候一定要知道谁是执行文件,​ 执行文件默认只能找到导入同级的模块文件,如果要导入不同级的模块文件,需要添加模块文件的路径。

 

import sys
sys.path.append(r'/Users/huyufeng/Desktop/每日总结/11')
import a
print(a.n)'''当导入某个模块时,Python会使用sys.path中指定目录,
按顺序搜索导入的模块。如果没有找到,则汇报模块找不到错误'''

 迭代取值与索引取值的差异

1.迭代取值

        优点:迭代取值可以对任意数据类型取值,不依赖于索引

        缺点:迭代取值只能硬着头皮往前取,要是突然想重新取前面的数据值时却不行了

2.索引取值

        优点:可以随意取值想取哪个位置的数据值就取哪个灵活性大

        缺点:对无序的容器类型无法取值有局限性

ps:两种取值方式没有谁好谁差一分,各有利弊在编写程序时可以给予实际情况分析哪一种更适用于当下的情况。


流程图

 步骤流程:先运行执行文件创建文件全局名称空间,import导入模块a,运行a.py文件创建a.py的全局名称空间,然后执行文件内的代码体,再返回b.py文件内的下面代码print(a.n),调用了模块a内的n名字对应的值。


http://chatgpt.dhexx.cn/article/rMO21Pln.shtml

相关文章

模块基础——模块简介、模块导入方式、模块查找顺序

文章目录 模块简介模块的使用import句式from...import...句式模块的补充知识判断文件类型循环导入问题模块的查找顺序(重点) 面向过程编程面向过程的优缺点 模块简介 什么是模块? 模块就是一系列功能的集合。在python中,一个py文件就是一个模块&#xff…

Linux下iptables防火墙配置

目录 一.Linux防火墙基础 1.1 防火墙概述 1.2 四表五链 二. iptables--命令 2.1 iptables的安装 2.2 iptables的配置方法 三.配置Filter表防火墙 3.1 列出(fliter)表中的所有链 iptables -L 3.2 使用数字形式(fliter)表…

linux防火墙添加开放端口

linux防火墙添加开放端口 --添加开放端口 sudo firewall-cmd --zonepublic --add-port开放的端口号/协议[tcp/udp] --permanent --permanent 添加的端口号永久生效 --使新增的端口配置立即生效 sudo firewall-cmd --reload ​​​​​​​

Linux修改防火墙

linux环境-CentOS 7.6 64位 查看是否配置防火墙:ifconfig 2.查看是否开启防火墙:service iptables status 3.查看防火墙配置规则:iptables -L -n 4.查看ssh当前端口占用:sudo netstat -atlunp | grep sshd 5.修改进入ssh目录&a…

linux 防火墙配置规则

基础知识 Linux系统内核内建了netfilter防火墙机制。Netfilter(数据包过滤机制),所谓的数据包过滤,就是分析进入主机的网络数据包,将数据包的头部数据提取出来进行分析,以决该连接为放行或阻挡的机制。Net…

Linux防火墙配置及放行端口

文章目录 一、firewalld的基本使用(系统防火墙)二、配置firewalld-cmd三、通过firewall-cmd(放行端口) 一、firewalld的基本使用(系统防火墙) 查看防火墙状态: systemctl status firewalld.se…

linux显示 防火墙配置文件,怎么查看Linux防火墙配置方法

当Linux系统的防火墙的状态和信息时候,我们可以用哪些命令查看呢。下面由学习啦小编为大家整理了查看Linux系统防火墙的命令详解,希望对大家有帮助! 查看Linux系统防火墙的命令详解 查看Linux系统防火墙的命令一、service方式 查看防火墙状态: [root@centos6 ~]# service ip…

Linux 配置防火墙

Linux 配置防火墙 一、图形化的形式 1.开启LAMP systemctl start httpd2.查看本地IP地址 ip addr3.本地IP为 192.168.31.150本地访问 外部浏览器就无法访问 4.此时配置防火墙 firewall-config此时,出现图形化界面,需要输入密码 改变服务http R…

Linux 防火墙配置(iptables和firewalld)

目录 防火墙基本概念 Iptables讲解 Iptables表 Iptables规则链 Iptables控制类型 Iptables命令配置 firewalld讲解 Firewalld区域概念 Firewalld两种配置方法 firewall-cmd命令行基础配置 firewall-config图形化配置 防火墙基本概念 防火墙就是根据系统管理员设定的…

UI设计师如何应对面试 哪些细节问题不可忽视

UI设计师如何应对面试?哪些细节问题不可忽视?有互联网的地方就会有UI设计师,越来越多的人转行从事UI设计加剧了求职竞争,如何才能脱颖而出获得高薪呢?专业技能很重要,面试技巧也不可忽视,下面就给大家分享…

UI设计师如何脱颖而出 面试过程中要注意什么

UI设计师如何脱颖而出?面试过程中要注意什么?有互联网的地方就会有UI设计师,越来越多的人转行从事UI设计加剧了求职竞争。专业技能很重要,面试技巧也不可忽视,下面就给大家分享一些UI设计师在面试过程中不可忽视的四个…

UI设计师这些面试技巧你知道吗?

随着互联网产业的飞速发展,UI设计师岗位缺口不断攀升,有意入行的人群也不在少数。那么学成之后,自然而然要进入到面试环节,为了提前做好准备,千锋今天向您分享几招UI设计师的面试技巧。 ​ 通顺的逻辑思维和表达能力 …

企业招聘UI设计常见面试题分享

对于想要加入互联网行业却又不愿意敲代码的人来说,UI设计是一个非常不错的选择。随着用户体验度即审美要求的提升,UI设计师地位进一步提升,很多企业都乐意薪资较高的招聘专业的设计人才。下面就给大家详细介绍一下。 目前UI设计热度呈现持续上…

2018年UI设计师经典面试题及答案总结

2018年马上就要结束了,给大家总结了一些UI设计出现比较多的面试题,很多时候我们有足够的技术,但是可能就断送在了面试上,大家如果去面试,可以多了解看看以下的这些UI设计师经典面试题及答案,毕竟知己知彼才能更好的发挥自己的特长,提高面试的机率嘛。 1、推动一个项目的…

android ui设计 面试问题,2019新版UI设计面试题汇总附答案

原标题:2019新版UI设计面试题汇总附答案 问题一、Android手机的常用设计尺寸有_________.怎么适配ios和安卓。 答案:安卓320 X 480是常规模拟器、但现在的开发都是用360x640做一倍率。480 X 800(1.5倍率)、720 X 1280(2倍率)、1920*1080(3倍率) ios用ske…

2019UI设计岗位最常见的面试题

UI作为门槛较低的互联网职业,每天都有很多人涌进UI设计行业,其实UI设计行业结构是和传统行业是一样的,不缺新人,或者水平一般的人,但是要成为技术娴熟却不容易。 而且并不是说你会了个工作流程,就很牛了。…

UI设计师作品准备以及面试攻略

链接:https://www.jianshu.com/p/a3ba265998fa 引言 众所周知设计师的面试分两个部分,一个是作品集,一个是面试过程。作品集是敲门砖,也是面试过程中贯穿全程的内容,如果你的作品集只有70分,那么你可以通过面试让自己…

上海数据交易中心交易系统开放

10月7日,上海数据交易中心正式宣布开放交易系统,实现24小时去中心化线上数据交易。同时,二十家首批会员也正式宣布入驻交易系统。其中,电信、联通等公司作为数据供应方加入了交易平台。数据公司晶赞科技、星际大数据和东方航空、安…

上海联通大数据服务再突破

大数据是运营商的核心战略资产,正成为上海联通数字化转型的核心、创新型收入的来源、重构生态圈的基石 日前,由上海市信息投资股份有限公司、中国联合网络通信集团有限公司(简称“中国联通”)、中国电子信息产业集团有限公司等9家机构联合发起成立的上海…

上海数据交易中心发布《数据互联规则》

9月7日,上海数据交易中心经过对数据交易的大量研究与实践探索,发布了《数据互联规则》(以下简称《规则》)。从国家宏观战略层面来看,《规则》的制定,不但与中国政府正大力推进的“互联网”行动计划、大数据…