1. 什么是模块
  1.1 模块就是一系列功能的集合体
    1.1.1 模块有三种来源
        1.内置的模块
        2.第三方的模块
        3.自定义模块
    1.1.2 模块的格式:
      1.使用Python编写的.py文件
      2.已被编译为共享库或DLL的C或C++扩展
      3.把一系列模块组织到一起的文件夹
      (注:文件夹下有一个__init__.py文件,该文件夹称之为包)
      4.使用C编写并链接到Python解释器的内置模块

2.为何要用模块
  2.1 使用内置的或者第三方模块的好处是: 拿来主义,可以极大提升开发效率
  2.2 使用自定义模块的好处是: 可以减少代码冗余(抽取我们自己程序中要公用的一些功能定义成模块,然后程序的各部分组建都去模块中调用共享的功能)

3.如何用模块
  3.1 大前提: 一定要区分开谁是执行文件,谁是被导入模块
  例如: 文件名spam.py, 模块名则是spam
  import spam
  首次导入模块发生了三件事:
    1. 会产生一个模块的名称空间
    2. 执行文件spam.py, 将执行过程中产生的名字都放到模块的名称空间中
    3. 在当前执行文件的名称空间中拿到一个模块名, 该名字指向模块的名称空间
    import spam
    import spam
    ...
    之后的导入,都是直接引用第一次导入的成果, 不会重新执行文件

    在执行文件中访问模块名称空间中名字的语法: 模块名.名字
    print(spam.x)
    指名道姓地跟spam要名字x, 肯定不会与当前执行文件中的名字冲突

    总结import导入模块: 在使用时必须加上前缀: 模块名.
    优点: 指名道姓地向某一个名称空间要名字, 肯定不会与当前名称空间中的名字冲突
    缺点: 但凡应用模块中的名字都需要加前缀, 不够简洁

    from spam import * 代表从被导入模块中拿到所有名字(不推荐使用)

    总结from...import...
    优点: 使用时, 无需再加前缀,更简洁
    缺点: 容易与当前名称空间中的名字冲突

python 1-1模块介绍和使用的更多相关文章

  1. Python中的模块介绍和使用

    在Python中有一个概念叫做模块(module),这个和C语言中的头文件以及Java中的包很类似,比如在Python中要调用sqrt函数,必须用import关键字引入math这个模块,下面就来了解一 ...

  2. Python时间time模块介绍

    一.明确时间元组 二.测试代码#!/usr/bin/env python # -- coding: utf-8 --' """ 时间模块,time的相关操作与测试 &qu ...

  3. Python 正则表达式——re模块介绍

    Python 正则表达式 re 模块使 Python 语言拥有全部的正则表达式功能,re模块常用方法: re.match函数 re.match从字符串的起始位置匹配,如果起始位置匹配不成功,则matc ...

  4. python 爬虫 urllib模块介绍

    一.urllib库 概念:urllib是Python自带的一个用于爬虫的库,其主要作用就是可以通过代码模拟浏览器发送请求.其常被用到的子模块在Python3中的为urllib.request和urll ...

  5. python 中 urlparse 模块介绍

    urlparse模块主要是用于解析url中的参数  对url按照一定格式进行 拆分或拼接 1.urlparse.urlparse 将url分为6个部分,返回一个包含6个字符串项目的元组:协议.位置.路 ...

  6. python的json模块介绍

    转载:https://blog.csdn.net/xsj_blog/article/details/51921664 对于数据传递方面,XML是一种选择,还有一种选择是JSON,它是一种轻量级的数据交 ...

  7. python 时间time模块介绍和应用

    1.其中format_string 类型的时间和struct_time之间可以转换,timestamp时间戳可以和struct_time之间进行转化,但是时间戳和格式化时间是不能直接转换的. time ...

  8. Python时间calender模块介绍

    获取某月日历 Calendar模块有很广泛的方法用来处理年历和月历,例如打印某月的月历: #!/usr/bin/python # -*- coding: UTF-8 -*- import calend ...

  9. python的subprocess模块介绍

    一.subprocess以及常用的封装函数运行python的时候,我们都是在创建并运行一个进程.像Linux进程那样,一个进程可以fork一个子进程,并让这个子进程exec另外一个程序.在Python ...

  10. python的tqdm模块介绍

    https://www.jianshu.com/p/b27318efdb7b Tqdm 是 Python 进度条库,可以在 Python 长循环中添加一个进度提示信息用法:tqdm(iterator) ...

随机推荐

  1. python 模块 module 规范

    # /usr/bin/python # -*- coding=utf-8 -*- """This is a standard module""&quo ...

  2. bzoj 4813: [Cqoi2017]小Q的棋盘【树形dp】

    这么简单的dp我怎么没想到x2 f为从这个点出发后回到这个点最多能走过的点,g为从这个点出发后不回到这个点最多能走过的点,注意g有两种转移:g[u][k]=max(g[u][k],f[u][k-j-1 ...

  3. bzoj 1070: [SCOI2007]修车【最小费用最大流】

    一开始从客人角度想的,怎么建都不对 从一个修车工所接待的所有顾客花费的总时间来看,设一共有x个人,那么第一个修的对总时间的贡献是x*w1,第二个是(x-1)*w2-以此类推.所以把第i个修车工拆成n组 ...

  4. 【SpringCloud构建微服务系列】Feign的使用详解

    一.简介 在微服务中,服务消费者需要请求服务生产者的接口进行消费,可以使用SpringBoot自带的RestTemplate或者HttpClient实现,但是都过于麻烦. 这时,就可以使用Feign了 ...

  5. Python添加自己的模块路径

    进入Python编辑环境后可以,通过Python的sys.path属性获得当前搜索路径的配置,可以看到之前我们设置的路径已经在当前搜索路径中了. 然后通过sys.path.append('F:\Pyt ...

  6. CF1140G Double Tree

    题解 首先如果我们要确定出每个\(dis_{i \to i+1 , i \in odd}\) 这个可以用两遍树形\(DP\)来解决 一遍是考虑走子树子树绕过来的 一遍是考虑从走祖先绕过来的 然后就可以 ...

  7. Lightoj 1174 - Commandos (bfs)

    题目链接: Lightoj  1174 - Commandos 题目描述: 有一军队秉承做就要做到最好的口号,准备去破坏敌人的军营.他们计划要在敌人的每一个军营里都放置一个炸弹.军营里有充足的士兵,每 ...

  8. ACM复习专项

    资料整理 ACM训练营 邝斌的ACM模板 牛客网哈理工ACM教学视频 视频网盘资料(密码:kntr) 1. 训练阶段 第一阶段:练习经典常用算法 (本周任务) 1. 最短路(Floyd.Dijstra ...

  9. 题解报告:hdu 1503 Advanced Fruits(LCS加强版)

    Problem Description The company "21st Century Fruits" has specialized in creating new sort ...

  10. 题解报告:CODE[VS] 1082 线段树练习3(区间修改+区间查询)

    题目描述 Description 给你N个数,有两种操作: 1:给区间[a,b]的所有数增加X 2:询问区间[a,b]的数的和. 输入描述 Input Description 第一行一个正整数n,接下 ...