python--模块导入

2023-11-19

目录

模块简介

模块导入的两种方式

方式一: import ...

方式二: from ... import ...


模块简介

1.什么是模块?
    模块就是一系列功能的结合体 可以直接使用

2.为什么要用模块?
    极大地提升开发效率(拿来主义>>>:站在巨人的肩膀上)

3.模块的三种来源
  1.内置的模块
      无需下载 解释器自带  直接导入使用即可
  2.自定义模块
      自己写的代码 封装成模块 自己用或者发布到网上供别人使用
  3.第三方模块
      别人写的发布到网上的 可以下载使用的模块(很多牛逼的模块都是第三方)

4.模块的四种表现形式(大白话:长啥样子)
  1.使用python代码编写的py文件         # 掌握
  2.多个py文件组成的文件夹(包)     # 掌握
  3.已被编译为共享库或DLL的c或C++扩展(了解)
  4.使用C编写并链接到python解释器的内置模块(了解)

模块导入的两种方式

方式一: import ...

import time # 别人封装好的模块

import sys # 系统自带

import md  # 自定义的py文件

...

研究模块的时候 一定要分清楚谁是执行文件, 谁是被导入文件(模块)

eg: 


import md
print(md.name)
md.read()

模块简介.py是执行文件, md.py是被导入文件(模块)

导入模块内部到底发生了什么事

   1.执行当前文件 产生一个当前文件的名称空间
    2.执行import句式 导入模块文件(即执行模块文件代码产生模块文件的名称空间)
    3.在当前文件的名称空间中产生一个模块的名字 指向模块的名称空间 
    4.通过该名字就可以使用到模块名称空间中的所有数据
ps:相同的模块反复被导入只会执行一次
    import md   有效
    import md   无效(写了跟没写一样)
    import md   无效(写了跟没写一样)

import句式的特点


    可以通过import后面的模块名点的方式 使用模块中所有的名字
    并且不会与当前名称空间中的名字冲突(指名道姓)

方式二: from ... import ...

导入模块内部到底发生了什么事

 1.执行当前文件产生一个名称空间
2.执行导入语句 运行模块文件产生名称空间存放运行过程中的所有名字
3.将import后面的名字直接拿到当前执行文件中

注意的点

1.重复导入也只会导入一次
2.使用模块名称空间中的名字不需要加模块名前缀 直接使用即可
3.但是from...import的句式会产生名字冲突的问题
    在使用的时候 一定要避免名字冲突
4.使用from...import的句式 只能使用import后面出现的名字
    from...import...可以简单的翻译成中文
        从...里面拿...来用 没有提到的都不能用      指名道姓

补充:

1.可以给被导入的模块起别名

2.可以连续导入多个模块或者变量名, 连续导入多个模块, 这个模块最好有相似的功能部分, 如果没有建议分开导入.  如果是同一个模块下的多个变量名则没有关系.

3. 用于导入方法: from md import *

        *表示md里面所有的信息,  

        from ... import 的句式也可以导入所有的信息

如果模块文件中使用了__all__限制可以使用的数据, 那么*就会失效, 依据__all__后面列举的数据

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

python--模块导入 的相关文章

随机推荐

  • 编写一个Book类,该类至少有name和price两个属性。该类要实现Comparable接口,在接口的compareTo()方法中规定两个Book类实例的大小关系为二者的price属性的大小关系。在

    编写一个Book类 该类至少有name和price两个属性 该类要实现Comparable接口 在接口的compareTo 方法中规定两个Book类实例的大小关系为二者的price属性的大小关系 在主函数中 选择合适的集合类型存放Book类
  • pc 后台管理系统总结

    人力资源后台管理系统 hrsaas 1 项目介绍 hrsaas是一款对公司员工管理的后台管理系统 主要实现功能 公司组织架构的增删改查 公司角色的增删改查以及公司信息内容展示 员工信息的查阅 员工在公司的工作状态 是否转正 离职 调岗 担任
  • Java基础之String类型详解

    目录 1 简介 2 字符串的比较 3 String的实例化方式 1 直接赋值方式 2 构造方法实例化 4 String对象 常量 池 5 字符串修改 6 String类常用方法 1 字符串查找 2 字符串替换 3 字符串拆分 4 字符串截取
  • 【ReactiveX】Observable 对象(译)

    更多内容 欢迎关注作者博客 http www china10s com blog p 475 Observable 对象 在 ReactiveX 中 一个观察者向 Observable 对象订阅消息 然后这个观察者将会响应 Observab
  • 区块链学习笔记4——BTC实现

    区块链学习笔记4 BTC实现 学习视频 北京大学肖臻老师 区块链技术与应用 笔记参考 北京大学肖臻老师 区块链技术与应用 公开课系列笔记 目录导航页 UTXO 区块链是一个去中心化的账本 比特币采用了基于交易的账本模式 然而 系统中并没有记
  • IPv4、IPv6、UDP、TCP数据报首部格式分析

    一 IPv4首部格式 图片来源 图解TCP IP 通过wireshark抓QQ的数据报 IPV4的数据报格式和上面的一致 现在进行分析 相对重要的会红色标记 1 版本 version 由4比特构成 表示标识IP首部的版本号 如上是版本号为4
  • 面试专题:Linux运维精华面试题

    下面是一名资深Linux运维求职数十家公司总结的Linux运维面试精华 助力大家跳槽找个高薪好工作 1 什么是运维 什么是游戏运维 1 运维是指大型组织已经建立好的网络软硬件的维护 就是要保证业务的上线与运作的正常 在他运转的过程中 对他进
  • java双人对弈五子棋源码_java swing 双人五子棋源代码

    import java awt Color import java awt Font import java awt Graphics import java awt Toolkit import java awt event MouseE
  • C++ 类中的static成员的初始化和特点

    C 类中的static成员的初始化和特点 在C 的类中有些成员变量初始化和一般数据类型的成员变量有所不同 以下测试编译环境为 g v Using built in specs COLLECT GCC g Target x86 64 linu
  • 删除排序数组的重复项(给定一个排序数组,你需要在原地删除重复出现的元素,使得每个元素只出现一次,返回移除后数组的新长度。不要使用额外的数组空间)

    给定一个排序数组 你需要在原地删除重复出现的元素 使得每个元素只出现一次 返回移除后数组的新长度 不要使用额外的数组空间 你必须在原地修改输入数组并在使用 O 1 额外空间的条件下完成 示例 1 给定数组 nums 1 1 2 函数应该返回
  • 第八章 聊聊区块链的几个数字

    第八章 聊聊区块链的几个数字 1 概述 2 2100W 3 每个区块10分钟 4 挖矿奖励4年递减1次 5 区块确认6次永久生效 6 51 算力攻击 6 1 币安黑客事件 参考资料 1 概述 在学习区块链过程中 会发现一些数字 心里不断问自
  • 使用MVC框架简单搭建一个数据库-后台-服务器Web项目

    在对Tomcat技术基本了解之后 用MVC框架简单搭建一个数据库 后台 服务器Web项目 MVC框架简介 MVC 是一种使用 MVC Model View Controller 模型 视图 控制器 设计创建 Web 应用程序的模式 Mode
  • 安全之公开密钥基本知识

    文件加密的基本知识 1 公开密钥密码 传统密码的缺点 1 收发双方持有相同密钥 密钥分配困难 KE KD K E K D 2 不能方便的实现数字签名 应用不方便 数字签名概念下面有 历史 公开密钥密码又称为双钥密码或非对称密码 是1976年
  • 企业网站建设方案书

    一 网站建设目标 1 1背景分析 现在网络的发展已呈现商业化 全民化 全球化的趋势 目前 几乎世界上所有的公司都在利用网络传递商业信息 进行商业活动 从宣传企业 发布广告 招聘雇员 传递商业文件乃至拓展市场 网上销售等 无所不能 如今网络已
  • iPhone Safari下iframe不显示滚动条无法滚动的解决方法

    div class dataTables wrapper style height 300px div
  • Go渗透测试笔记(二)---TCP,扫描器和代理

    Go渗透测试笔记 二 TCP 扫描器和代理 0x00 前言 TCP是面向连接协议的主要标准 也是现代网络的基础 作为攻击者 我们应当了解TCP的工作原理 并且能够开发可用的TCP结构体 以便可以识别 打开 关闭 的端口 找出错误的结果 如误
  • TCP/IP协议栈及网络基础,协议栈原理及实现

    1 TCP IP协议栈及网络基础 推荐这个在B站几千观看的视频讲解 底层原理到徒手实现 TCP IP网络协议栈 tcp协议栈 如何实现 C C Linux服务器开发高级架构学习视频点击 C C Linux服务器开发高级架构师 Linux后台
  • 正则表达式工具类

    在实际开发中总会使用到正则表达式匹配数据 我也是在后面查看了一些资料 下面写一个常用的正则表达式匹配集合 正则匹配模式 表示匹配字符串的开始位置 例外 用在中括号中 时 可以理解为取反 表示不匹配括号中字符串 表示匹配字符串的结束位置 表示
  • 量化交易动了谁的奶酪

    最近关于量化交易的政策讨论频出 在内容上 主要是限制其高频交易和某些可能对市场产生负面影响的行为 具体来说 中国证券监督管理委员会和上海证券交易所等机构都出台了相关政策 对量化交易的频率 规模 风险控制等方面进行了限制 这些政策的出台主要是
  • python--模块导入

    目录 模块简介 模块导入的两种方式 方式一 import 方式二 from import 模块简介 1 什么是模块 模块就是一系列功能的结合体 可以直接使用 2 为什么要用模块 极大地提升开发效率 拿来主义 gt gt gt 站在巨人的肩膀