一、模块

模块(Module)是由一组类、函数和变量组成的,模块文件的扩展名是.py或.pyc

在使用模块之前,需要先使用import语句导入这个模块。

语法格式如下:

  import 模块名

  from 模块 import 方法(变量)名1......

from .... import 语句允许我们只导入模块的一部分,如导入某个具体的类、方法或变量。

当使用import语句加载模块时,模块内的程序代码会立即被执行。

使用from .... import 语句只导入我们需要的部分内容,能极大的提高空间的使用效率。

二、类库

类库(Package)也称为包,是由相同文件夹下的一组模块组成,类库的使用方法和模块的方法类似;

唯一需要注意的是,将文件夹当做类库使用时,文件夹中必须包含__init__.py文件,主要为了避免文件夹名当做普通的字符串使用

语法格式如下:

  import 类库

  import 类库.模块

  from 类库.模块 import 方法/(变量)

  from 类库 import 模块

import math                     # 导入一个模块
import os, sys # 导入多个模块

import datetime
from datetime import date # 导入模块中某个具体的类
from math import pi # 导入模块中某个变量

# import ch08_2

import xml
# import xml.sax # 需要使用全名去访问
# from xml import sax
# from xml import *
# from xml.sax.handler import version

a = 1024
print("a的平方根为:", math.sqrt(a)) # 求平方根
print(pi)

print("当前工作平台:", os.name) # 'nt': Windows 'posix': Linux/Unix
print("当前系统平台:", sys.platform)

print("今天的日期:", datetime.date.today())
print("今天的日期:", date.today())

ver = xml.sax.handler.version
print("版本号:", ver)

import datetime as dt                   # 给模块取个别名
from datetime import date as newdate # 给模块中的类/方法/变量取别名

import math

print("今天的日期:", dt.date.today())
print("今天的日期:", newdate.today())

today = dt.date.today
print("今天的日期:", today())

new_math = math
print(new_math.pi)

# 模块的内置方法
# __dict__:显示模块的字典
print("__dict__:", dt.__dict__)

# __doc__:显示模块的文件字符串
print("__doc__:", dt.__doc__)

# __name__:显示模块的名称,用来标识命名空间
print("__name__:", dt.__name__)
# 一个模块被另一个程序第一次导入时,其主程序会被执行
print('__name__:', __name__)
if __name__ == '__main__':
print('该模块自身在运行')
else:
print('该模块被导入另一个程序时被运行')

# __file__:显示模块的完整文件路径
print("__file__:", dt.__file__)

# del:删除已加载的模块(从内存中清除)
del dt

python -- 模块与类库的更多相关文章

  1. python之模块与类库

    什么是模块 模块是一组类,函数,方法所组成的.这些类都储存在文本文件中..py是python程序代码中的扩展名,模块可能是c或者python写的.模块的扩展名可以是.py或者是.pyc(经过编译的.p ...

  2. python-学习笔记之-Day5 双层装饰器 字符串格式化 python模块 递归 生成器 迭代器 序列化

    1.双层装饰器 #!/usr/bin/env python # -*- coding: utf-8 -*- # author:zml LOGIN_INFO = False IS_ADMIN = Fal ...

  3. python成长之路【第十八篇】:python模块介绍、模块导入和重载

    一.模块和命名空间 一般来说,Python程序往往由多个模块文件构成,通过import语句连接在一起.每个模块文件是一个独立完备的变量包,即一个命名空间.一个模块文件不能看到其他文件定义的变量名,除非 ...

  4. python模块大全

    python模块大全2018年01月25日 13:38:55 mcj1314bb 阅读数:3049 pymatgen multidict yarl regex gvar tifffile jupyte ...

  5. python- 双层装饰器 字符串格式化 python模块 递归 生成器 迭代器 序列化

    1.双层装饰器 #!/usr/bin/env python3 # -*- coding: utf-8 -*- # author:zml LOGIN_INFO = False IS_ADMIN = Fa ...

  6. 分分钟钟学会Python - 模块

    目录 模块 1 模块基础知识 2 random 返回随机生成的一个实数 3 hashlib 摘要算法模块 Hmac算法 4 time /datetime 时间模块 5 getpass 密码不显示(只能 ...

  7. 使用C/C++写Python模块

    最近看开源项目时学习了一下用C/C++写python模块,顺便把学习进行一下总结,废话少说直接开始: 环境:windows.python2.78.VS2010或MingW 1 创建VC工程 (1) 打 ...

  8. Python模块之configpraser

    Python模块之configpraser   一. configpraser简介 用于处理特定格式的文件,其本质还是利用open来操作文件. 配置文件的格式: 使用"[]"内包含 ...

  9. Python模块之"prettytable"

    Python模块之"prettytable" 摘要: Python通过prettytable模块可以将输出内容如表格方式整齐的输出.(对于用Python操作数据库会经常用到) 1. ...

随机推荐

  1. NSight Compute 用户手册(上)

    NSight Compute 用户手册(上) 非交互式配置文件活动 从NVIDIA Nsight Compute启动目标应用程序 启动NVIDIA Nsight Compute时,将出现欢迎页面.单击 ...

  2. Bind DNS服务——基础知识

    Linux基础--Bind DNS服务 Part0 DNS简介 域名系统(英语:Domain Name System,缩写:DNS)是互联网的一项服务.它作为将域名和IP地址相互映射的一个分布式数据库 ...

  3. 性能工具之Jmeter小白入门系列之一

    一.简单了解 Apache JMeter The Apache JMeter application is open source software, a 100% pure Java applica ...

  4. 【NX二次开发】创建有界平面UF_MODL_create_bplane

    先准备几条曲线如下图所示,我们用这几条线来创建一个有界平面: 效果:  源码: //有界平面 extern DllExport void ufusr(char *param, int *returnC ...

  5. 11:(1055, "'bbs02.app01_category.name' isn't in GROUP BY")

    后台报错:[err] 1055 --  'xxx' isn't in GROUP BY 解决方案: 初步判断是数据库(版本?配置?)的问题 进入mysql 的my.ini配置文件 ctrl+f 搜索找 ...

  6. 给元素设置overflow:hidden,pc端正常,但移动端依然可以滑动

    给设置overflow:hidden的元素设置position:fixed即可解决

  7. 在线博客转PDF电子书 | JS爬虫初探

    最近在看一位大佬写的源码解析博客,平时上下班用手机看不太得劲,但是平板又没有网卡,所以就想搞个离线pdf版,方便通勤时间学习阅读. 所以,问题来了: 怎么把在线网页内容转成pdf? 这位大佬的博客是用 ...

  8. [Django REST framework - 自动生成接口文档、分页]

    [Django REST framework - 自动生成接口文档.分页] 自动生成接口文档 # 后端人员写好接口,编写接口文档,给前端人员看,前端人员依照接口文档开发 # 公司里主流 -后端,使用w ...

  9. Retrofit使用Kotlin协程发送请求

    Retrofit2.6开始增加了对Kotlin协程的支持,可以通过suspend函数进行异步调用.本文简单介绍一下Retrofit中协程的使用 导入依赖 app的build文件中加入: impleme ...

  10. 不带Anchors和NMS的目标检测

    ​前言: 目标检测是计算机视觉中的一项传统任务.自2015年以来,人们倾向于使用现代深度学习技术来提高目标检测的性能.虽然模型的准确性越来越高,但模型的复杂性也增加了,主要是由于在训练和NMS后处理过 ...