一、简介

模块是一个包含所有你定义的函数和变量的文件,其后缀名是.py。模块可以被其他程序导入来使用模块具有的功能。这也是使用python标准库的方式。

import time
start_time = time.perf_counter()
i = []
for x in range(10):
if x%2 == 0:
i.append(x)
print(i)
end_time = time.perf_counter()
print(end_time - start_time)

首先使用import导入time包,这样意味着我们能够使用time包里的所有公共内容。最后利用time包的相关计时功能计算出该程序执行时长。调用模块可以减少函数的重复使用,精简代码。

二、from … import … 语句和import语句。

from sys import argv 表示从sys模块中导入了argv(可以是类,函数,变量等)。

form sys import *表示从sys模块中导入了所有内容。

import sys表示引入sys包

例子:

在test001.py中有这样一些函数:

def add(a, b):
print(a + b)
def sub(a, b):
print(a - b)
def mul(a, b):
print(a * b)
def divide(a, b):
print(a / b)

在test002中三种导入方式

1、from sys import argv 导入

from test001 import add

add(10, 5)

这个操作表示从test001模块中导入add函数,可以直接使用,而不用再重新写函数。

2. form sys import *

from test001 import *

add(10, 5)
sub(12,6)
mul(12,0.3)
divide(1,5)

该操作表示从test001中导入例如所有函数功能,我们能够看到,在test001中的四个函数我们都能够使用。

import test001

test001.add(10, 5)
test001.sub(12,6)
test001.mul(12,0.3)
test001.divide(1,5)

使用import test001导入内容时,要指定模块的那个功能,否则系统会报错。

from…import注:相当于导入的是一个文件夹中的文件,是个绝对路径。而import 模块:相当于导入的是一个文件夹,是个相对路径。因此在使用模块中的函数时一定要指定是那一个模块。

三、__name__属性

在每一个模块中都会有一个__name__属性,表示这个主程序在当前模块程序,但当导入到其他模块时,主模块不执行。

if __name__ == “__main__”:

  print(’当前模块执行’)

else:

  print(‘在其他模块导入当前模块时执行’)

每个模块都有一个__name__属性,当其值是”__main__”时,表示模块自身在执行,否则被引入。

__name__和__main__都是双下划线,并且都是英文符。

四、dir函数

内置的函数 dir() 可以找到模块内定义的所有名称。以一个字符串列表的形式返回。

导入sys模块后,我们能看到sys的相关属性列表,它返回的是当前模块的属性列表。当我们重新定义一个变量a,并且用dir()查看时,我们得到了当前模块中定义的属性列表。使用del删除a后,重新查看,我们能够看到其中存在的区别。

五、python包

包是模块的文件夹,有一个特殊的__init__.py 文件,用来表明这个文件夹是特殊

的因为其包含有Python 模块。包仅仅是为了方便层次化地组织模块。

blog/

  __init__.py

  A/

    __init__.py

    test.py

  B/

    __init__.py

如上面所示,在这个例子中,有三个python包,blog/叫做顶层包,A/和B/叫做子包。test.py表示子包下的python模块。

包的导入(导入test模块为例):

import blog.A.test /

from blog.A import test

这两种方式都是表示导入A包下的子模块。如果要导入模块下的某一函数,则应该这样做:

from blog.A.test import add

表示导入test模块中的add函数

05-Python模块的更多相关文章

  1. python 学习第五天,python模块

    一,Python的模块导入 1,在写python的模块导入之前,先来讲一些Python中的概念性的问题 (1)模块:用来从逻辑上组织Python代码(变量,函数,类,逻辑:实现一个功能),本质是.py ...

  2. Python模块的介绍

    Python模块的学习: 1.os模块: 下面只对os模块中几个比较常用的方法做一些简单的示例: os.system():这个方法在shell中体现的比较多,在dos命令行中也可以执行,下面就以在do ...

  3. 50个很棒的Python模块

    50个很棒的Python模块 我很喜欢Python,Python具有强大的扩展能力,我列出了50个很棒的Python模块,包含几乎所有的需要:比如Databases,GUIs,Images, Soun ...

  4. python 模块加载错误总结

    在运行yum时提示如下错误 There was a problem importing one of the Python modules required to run yum. The error ...

  5. python模块部分----模块、包、常用模块

    0.来源:https://www.cnblogs.com/jin-xin/articles/9987155.html 1.导入模块 1.1模块就是一个python文件,模块名是文件名 1.2导入模块的 ...

  6. python 模块之-time

    python 模块time import time # 1 time() :返回当前时间的时间戳 time.time() #1473525444.037215 #------------------- ...

  7. python 模块和包

    一,模块 1,什么是模块? 常见的场景: 一个模块就是一个包含了python定义和声明的文件,文件名就是模块名字加上.py 的后缀. 但其实 import 加载的模块分为四个通用类别: 1,使用pyt ...

  8. python开发_常用的python模块及安装方法

    adodb:我们领导推荐的数据库连接组件bsddb3:BerkeleyDB的连接组件Cheetah-1.0:我比较喜欢这个版本的cheetahcherrypy:一个WEB frameworkctype ...

  9. python模块介绍-locustio:性能测试工具locustio

    转自:http://automationtesting.sinaapp.com/blog/m_locustio_doc python测试文章 http://weibo.com/cizhenshi?is ...

  10. [转]50个很棒的Python模块

    转自:http://www.cnblogs.com/foxhengxing/archive/2011/07/29/2120897.html Python具有强大的扩展能力,以下列出了50个很棒的Pyt ...

随机推荐

  1. 用python简单爬取一个网页

    1打开编辑器 2撸几行代码 import urllib.request import urllib.error def main(): askURl("http://movie.douban ...

  2. CISCN 2019-ikun

    0x01 进去网址,页面如下: 刚开始有个登陆和注册的按钮,上图是我已经注册后登陆成功后的页面,我们发现在图的左下角给了一个关键的提示,购买LV6,通过寻找我们发现页面数很多,大概500页,一个一个找 ...

  3. Jmeter基础003----Jmeter组件之测试计划和线程组

    一.测试计划 1.界面展示 测试计划是测试脚本的容器,主要是对测试脚本做总体设置.它定义了测试要执行什么,怎么执行(执行的).其界面如下图所示:   2.设置用户定义变量 在测试计划中定义的变量是在整 ...

  4. ROC曲线 vs Precision-Recall曲线

    深入理解对比两个曲线各自的特性和相互的差异需要花不少时间研读一些国外的技术博客与相关paper,暂时先列出下面这么多,这部分后续可以继续补充. ROC曲线和AUC的定义可以参看“ROC曲线于AUC”, ...

  5. linux最小化安装命令补全

    bash-completion 需要安装bash-completion才能补全,安装后,重新打开一个窗口就能生效.

  6. 关于安装Django包的问题

    在Windows的环境下,有些包确实不好安装的,比如reportlab-3.2.0-cp27-none-win32.whl,根据xadmin安装的经验,从这个.whl里把文件夹reportlab解压出 ...

  7. Redis 持久化-AOF自动重写配置

    AOF自动重写 auto-aof-rewrite-min-size size auto-aof-rewrite-percentage percent 在 redis.conf 自动重写的默认配置: a ...

  8. TCP端口扫描类型-隐蔽扫描和僵尸扫描

    TCP扫描有三种类型:全连接扫描,隐蔽扫描,僵尸扫描.全连接扫描无须赘述. 隐蔽扫描:发送完SYN数据包以及收到SYN/ACK数据包后不再发送SCK数据包,由于没有建立完整的TCP连接,所以在目标主机 ...

  9. ajax前后端交互原理(6)

    6.XMLHttpRequest对象 XMLHttpRequest 是一个 API,它为客户端提供了在客户端和服务器之间传输数据的功能.它提供了一个通过 URL 来获取数据的简单方式,并且不会使整个页 ...

  10. 题解 P5937 【[CEOI1999]Parity Game】

    这道题有两种做法,一种是 扩展域(种类并查集),一种是 边带权(带权并查集).种类并查集貌似应该都比带权并查集简单,所以先讲种类并查集的做法,再讲带权并查集 种类并查集 若 sum[ l ~ r ] ...