当前位置: 首页 > news >正文

python 模块一览

  1. 一个模块可以对应一个文件
  2. 同一个模块,可以import多次,但只会被导入一次
  3. 模块的导入顺序
    导入模块写在文件最上面
    自己写的和内置的以及扩展的分开
    顺序:内置,扩展,自己写的
    按字母大小写排序
  4. 一行可以import多个模块,使用逗号分割开(建议不这么做,分开导入更清晰)
  5. from import
    # 从一个模块中单独导入一个方法
    from
    time import sleep
  6. import和from import的区别
    import会导入整个模块,比较占内存
    from..import..导入的名字可能和自己写的冲突
  7. from import *
    #作用和import相同,但是会把名字都导入,可能和自己创建的名字产生冲突
    
    #例子
    from time import *
    def sleep():    #产生文件名的冲突,调不到time的sleep
        pass

    #可以在模块中,通过下面的方法,来设置from..import *时导入的名字
    __all__ = ['time','sleep',...]
  8. 导入模块的过程
    1.先从sys.module查看是否被导入了
    2.如果没有导入,根据sys.path路径找模块
    3.找到了就导入
    4.创建模块的命名空间
    5.执行文件,把文件中的名字都放入命名空间
  9. 给模块起别名
    #使用as关键字
    
    import time as t
  10. 使语句只有直接执行当前模块才执行
    #判断当前的属性__name__是不是__main__
    
    if __name__ == '__main__':
        pass
  11. 包是一种通过使用‘.模块名’来组织python模块名称空间的方式。
    
    1. 无论是import形式还是from...import形式,凡是在导入语句中(而不是在使用时)遇到带点的,都要第一时间提高警觉:这是关于包才有的导入语法
    
    2. 包是目录级的(文件夹级),文件夹是用来组成py文件(包的本质就是一个包含__init__.py文件的目录)
    
    3. import导入文件时,产生名称空间中的名字来源于文件,import 包,产生的名称空间的名字同样来源于文件,即包下的__init__.py,导入包本质就是在导入该文件
    
    强调:
    
      1. 在python3中,即使包下没有__init__.py文件,import 包仍然不会报错,而在python2中,包下一定要有该文件,否则import 包报错
    
      2. 创建包的目的不是为了运行,而是被导入使用,记住,包只是模块的一种形式而已,包即模块

转载于:https://www.cnblogs.com/walthwang/p/10393527.html

相关文章:

  • 《流浪地球》:一个程序员用代码拯救了世界,真硬核!
  • 500位软件开发工程师的声音:微服务和CI/CD依旧是最爱
  • 机器学习进阶-图像形态学操作-膨胀操作 1.cv2.dilate(进行膨胀操作)
  • 用Python写一份独特的元宵节祝福
  • Java开源诊断工具 Arthas 发布v3.1.0
  • 汇编语言第一章检测题
  • 无法打开外网ip链接
  • vue 组件通信
  • vue 配置sass、scss全局变量
  • LeetCode 28.实现strStr()(Python3)
  • CODING 缺陷管理功能正式开始公测
  • 官方解决所有 npm 全局安装权限问题
  • Dubbo底层采用Socket进行通信详解
  • 消息队列系列二(IOT中消息队列的应用)
  • js排序篇----快速排序,选择排序,冒泡排序,希尔排序
  • [PHP内核探索]PHP中的哈希表
  • [译]CSS 居中(Center)方法大合集
  • Angular 2 DI - IoC DI - 1
  • Electron入门介绍
  • FineReport中如何实现自动滚屏效果
  • HomeBrew常规使用教程
  • Intervention/image 图片处理扩展包的安装和使用
  • JavaScript中的对象个人分享
  • Java到底能干嘛?
  • java多线程
  • Node + FFmpeg 实现Canvas动画导出视频
  • Node.js 新计划:使用 V8 snapshot 将启动速度提升 8 倍
  • PyCharm搭建GO开发环境(GO语言学习第1课)
  • scrapy学习之路4(itemloder的使用)
  • vue2.0开发聊天程序(四) 完整体验一次Vue开发(下)
  • 测试开发系类之接口自动化测试
  • 从输入URL到页面加载发生了什么
  • 关键词挖掘技术哪家强(一)基于node.js技术开发一个关键字查询工具
  • 讲清楚之javascript作用域
  • 扑朔迷离的属性和特性【彻底弄清】
  • 前端技术周刊 2018-12-10:前端自动化测试
  • 前端性能优化——回流与重绘
  • 如何使用Mybatis第三方插件--PageHelper实现分页操作
  • 职业生涯 一个六年开发经验的女程序员的心声。
  • 浅谈sql中的in与not in,exists与not exists的区别
  • 数据库巡检项
  • #Java第九次作业--输入输出流和文件操作
  • #LLM入门|Prompt#1.7_文本拓展_Expanding
  • (20)目标检测算法之YOLOv5计算预选框、详解anchor计算
  • (42)STM32——LCD显示屏实验笔记
  • (八)c52学习之旅-中断实验
  • (黑马C++)L06 重载与继承
  • (一)Neo4j下载安装以及初次使用
  • (原創) 系統分析和系統設計有什麼差別? (OO)
  • (转)linux下的时间函数使用
  • (轉貼) UML中文FAQ (OO) (UML)
  • .bat批处理(七):PC端从手机内复制文件到本地
  • .net 开发怎么实现前后端分离_前后端分离:分离式开发和一体式发布
  • .net 受管制代码
  • .NET 中使用 Mutex 进行跨越进程边界的同步