栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 软件开发 > 后端开发 > Java

模块及模块导入

Java 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

模块及模块导入

知识点1 迭代取值和索引取值的区别
  • 1.1 索引取值:
    • 优点:可以反复获取任意数据值
    • 缺点:对无序的集合体无法取值
l1 = [1, 2, 3]
print(l1[0])
print(l1[1])
print(l1[2])
print(l1[2])
print(l1[1])
print(l1[0])
  • 1.2 迭代取值:
    • 优点:提供了一种通用的取值方式
    • 缺点:取值一旦开始 只能前进 不能退后
l1 = [1, 2, 3]
res = l1.__iter__()
print(res.__next__())
print(res.__next__())
print(res.__next__())

知识点2 模块 2.1 定义:
  • 模块就是具有特定功能的一个结合体,调用模块就拥有了该模块的所有功能
2.2 分类:
  • 1> 内置模块 python解释器自带的模块
  • 2> 自定义模块 自己写的模块
  • 3> 第三方模块 别人写的发布在网上的模块,使用之前需要先下载
2.3 模块的表现形式
  • 1> py文件
  • 2> 含有多个py文件的文件夹
  • 3> 已被编译为共享库或DLL的c或C++扩展(了解)
  • 4> 使用C编写并链接到python解释器的内置模块(了解)
2.4 模块的两种调用放方式
  • 1> 整体导入
    • 语法: import 模块名
    • 优点: 调用之后可是使用该模块名称空间中的所有名字,即通过’模块点’的形式调用
    • 缺点: 当只需要调用几个或者少部分模块中的名字的情况下,整体调用浪费内存空间
    • 语言描述调用过程:首先产生一个执行文件(被导入文件)的名称空间,模块名被存入该名称空间,接着产生模块文件的名称空间,模块中的所有名字被存入到该名称空间,通过’模块点’的形式可以调用模块名称空间中的所有名字

import time 
time.time()
time.sleep()
time.mktime()
  • 2> 指名道姓导入
    • 语法 from 模块名 import 名字
    • 优点 使用时不需要加模块名的前缀
    • 缺点 容易和执行文件中的名字发生冲突
    • 语言描述调用过程 首先产生一个执行文件(被导入文件)的名称空间,导入的名字被存入该名称空间,接着产生模块文件的名称空间,模块中的所有名字被存入到该名称空间,但只能调用被导入执行文件的名字
from md import money

print(money)
2.5 起别名
  • 1> 导入的名字相同时
from md1 import money as m_md1
from md2 import money as m_md2
print(m_md1)
print(m_md2)
  • 2> 导入的名字太复杂的时候
import multiprocessing as mu
2.6 导入多个名字
  • 方式1:不推荐
import time, sys, os
  • 方式2: 推荐
import time
import os
import sys
2.7 全导入
  • 语法:from 模块名 import *
  • 控制导入数量的方法: 在模块文件中加入__all__ = [想被导入的名字1,想被导入的名字2,]
from multiprocessing import *
知识点3 循环导入
  • 1 什么时循环导入?
    • 两个文件彼此导入
  • 2 循环导入产生的问题,以及产生问题的原因
    • 问题:会出现报错的现象
    • 原因:在彼此的名字没有准备好的情况下被使用
  • 3 如何解决循环导入产生的问题?
    • 在彼此调用名字之前 先准备好名字
  • 4 真的推荐使用循环导入吗?
    • 不推荐,最大可能的避免循环导入的问题,如果无法避免,则在调用前手动修改产生需要的名字
知识点4 判断文件类型
  • 所有的py文件都有一个__ name__ 的内置名 当py文件是执行文件的时候__ name__ 的结果是:__ main__ 当py文件时被导入文件的时候 __ name__ 的结果是:模块名
  • 应用场景:模块的作者在模块文件中自己测试功能的时候使用
if __name__ == '__main__':
    当文件是执行文件的时候才会执行if的子代码
知识点5 模块的查找顺序
  • 1> 内存中查找>>>>>内置中查找>>>>>>sys.path中查找
  • 2> 验证过程
# 1.导入一个文件 然后在导入过程中删除该文件 发现还可以使用
	 import md
    import time

    time.sleep(15)
    print(md.money)
  • 3> 切记,不要创建和内置模块名相同的名字
  • 4> 所有的路径都要参照执行文件来确定
    • 方式1:sys.path.append(目标文件所在的路径)
    • 方式2:from … import
sys.path.append(E:Practicesabc)
from a.b.c import d.py
转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/1013340.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号