一.模块

定义:有些功能开发者自己无法完成(例:与操作系统打交道,时间,1000取随机数,压缩文件,网络通信),需要借用已经实现的函数/类来完成这些功能

模块的分类:

1,   内置函数:安装python解释器的时候跟着安装的那些方法

2,自定义模块:你写的功能如果是一个通用功能,那么就把它当作一个模块

3,第三发模块/扩展模块:没在安装python解释器的时候跟着安装的那些方法

模块的导入顺序:先导入内置模块,再导入第三方模块,最后导入自定义模块

模块的重命名

import my_moudle as m

导入多个模块

#import os,my_moudle,sys # 1 横向导入#PEF8规范 # 2 纵向导入#import os#import sys#所有的模块都应该尽量放在这个文件的开头

一个模块只会被导入一次,不管你执行了多少次import。这样可以防止导入模块被一遍又一遍地执行。

#import my_moudle # 要导入一个py文件的名字,但不会加.py后缀名#import my_moudle # 模块的名字必须要满足变量命名的规范,一般情况下,模块都是小写开头

二.from...import

#from my_moudle import login # import login 知道了login这个名字,那么会在本文件中创建一个变量,指向这个模块命名空间中的login函数#login() # from my_moudle 会找到my_moudle模块,开辟一块属于这个模块的命名空间,执行函数

#def login():#print('hello world')#当模块中导入的变量与方法 和 本文件中的变量重名时,那么这个名字只代表最后一次对它赋值的变量或方法#login()

#from my_moudle import login

#导入了什么 就能使用什么

#不导入的变量 就不能使用

#不导入并不意味着不存在,而是没有建立从文件到模块的其他名字的引用#print(name)

导入多个

#from my_moudle import login,name#print(name)#login()

重命名

#from my_moudle import login as l,name as n#print(n)#l()

*导入模块中的所有变量

#from my_moudle import *#print(name)

__all__ = [] 控制*导入的内容

#__all__ = ['login']

三.把模块当作脚本运行

运行py文件的两种方式:

#1 以模块的方式运行

#import my_moudle#2 以脚本的方式运行

#直接运行pycharm解释器,cmd运行

#在编写py文件的时候#所有不在函数和类中封装的内容都应该写在#if __name__ == '__main__':下面#if __name__ == '__main__':#print('路过人间,世人都善变')#print(__name__,type(__name__)) # '__main__'/'my_moudle'

#在使用反射自己模块中的内容的时候#import sys#sys.modules[__name__]

四.包

导入包 相当于执行了__init__.py文件

直接导入模块

#import book.letter.bookworm#book.letter.bookworm

#import book.letter.bookworm as bookworm#bookworm.get()

#from book.letter import bookworm#bookworm.get()

绝对导入

#import sys#sys.path.append('D:\python_worksapce\day24\模块导入的专题练习\core')#import main

相对导入

#import sys#lst = __file__.split('/')#base_path = '/'.join(lst[:-2])#sys.path.append(base_path)#from core import main

如果使用了相对导入的模块只能被当作模块执行,不能被当作脚本执行

五.set去重机制

#class Employee:#def __init__(self,name,sex,age,partment):#self.name = name#self.sex = sex#self.age = age#self.partment = partment#

#def __hash__(self):#return hash('%s%s' % (self.name,self.sex))#

#def __eq__(self, other):#if self.name == other.name and self.sex == other.sex:#return True#

#employ_lst = []#for i in range(200):#employ_lst.append(Employee('alex','male',i,'python开发部'))#for i in range(200):#employ_lst.append(Employee('wusir','male',i,'go开发'))#for i in range(200):#employ_lst.append(Employee('taibai','male',i,'爬虫'))#

#employ_lst = set(employ_lst)## print(employ_lst)#for Person in employ_lst:#print(Person.__dict__)

有没有讲python模块的书_python - 模块,包相关推荐

  1. python email模块详解_python模块之email: 电子邮件编码解码 (一、解码邮件)-阿里云开发者社区...

    python自带的email模块是个很有意思的东西,它可以对邮件编码解码,用来处理邮件非常好用. 处理邮件是一个很细致的工作,尤其是解码邮件,因为它的格式变化太多了,下面先看看一个邮件的源文件: Re ...

  2. python模块的函数_Python模块及函数的使用

    一. 1.模块是包含函数和其他语句的脚本文件,以".py"为后缀名,在Python中可以通过导入模块来使用模块中的函数或数据. 创建一个文件fun.py内容如下: def f1() ...

  3. python模块大全使用说明_python模块详解

    使用python时,常常会涉及到库的调用,这就需要掌握模块的基本知识.本文分为如下几个部分 概念说明 模块的简单调用 包的导入 特殊的__init__.py文件 导入模块的搜索路径 __all__ 绝 ...

  4. python email模块详解_python模块之email: 电子邮件编码解码 (一、解码邮件)

    python自带的email模块是个很有意思的东西,它可以对邮件编码解码,用来处理邮件非常好用. 处理邮件是一个很细致的工作,尤其是解码邮件,因为它的格式变化太多了,下面先看看一个邮件的源文件: Re ...

  5. python模块的函数_python模块内置函数

    python提供了一个内联模块buildin,该模块定义了一些软件开发中经常用到的函数,利用这些函数可以实现数据类型的转换.数据的计算.序列的处理等. 模块的内置函数: 1.apply():可以调用可 ...

  6. python模块搜索路径_Python模块搜索路径

    当一个名为 spam 的模块被导入的时候,解释器首先寻找具有该名称的内置模块.如果没有找到,然后解释器从 sys.path 变量给出的目录列表里寻找名为 spam.py 的文件.sys.path 初始 ...

  7. python导入模块以及类_python模块的导入以及模块简介

    标签: 一.模块的定义及类型 1.定义 模块就是用一堆的代码实现了一些功能的代码的集合,通常一个或者多个函数写在一个.py文件里,而如果有些功能实现起来很复杂,那么就需要创建n个.py文件,这n个.p ...

  8. python怎么定义名称_Python模块的定义,模块的导入,__name__用法实例分析

    本文实例讲述了Python模块的定义,模块的导入,__name__用法.分享给大家供大家参考,具体如下: 相关内容: 什么是模块 模块的导入 模块的导入 自模块的导入 同级目录导入 不同级目录导入 目 ...

  9. python 阮一峰_Python模块整理

    这两天学习了一些基本的Python模块,现在做一些整理,理清楚 查看大佬的理解:http://www.cnblogs.com/alex3714/articles/5161349.html 开始时间:1 ...

最新文章

  1. 巧用Excel记录单快速输入数据
  2. NET中的异步编程(二)- 传统的异步编程
  3. 将外部知识整合到群体智能中,以获得更具体的知识
  4. php分页功能乱码了怎么办,51、PHP文件内容分页操作,避免乱码
  5. Android 开发笔记——通过 Intent 传递类对象
  6. android 布局点击效果,如何让LinearLayout也有类似Button的点击效果?
  7. UVA - 514:Rails
  8. DOM 节点的创建、删除、替换
  9. 图像频域增强:低通滤波器
  10. git 码云上传本地项目
  11. 阿里云E-HPC+i4p大内存实例,加速寻因生物单细胞数据分析效率
  12. 手机ncm转mp3工具_一款手机、电脑都能用的文字转语音工具,够高能! - 橘子世界...
  13. 优化算法 - 遗传算法
  14. 小马激活工具激活系统后,电脑不能启动,出现错误 a disk read error occurred
  15. 一个nginx小白的vue项目部署的成功!
  16. STM32蓝牙控制LED灯开关
  17. Paper Reading Notes
  18. 解决前端工程师与UI设计协同工作的问题
  19. 【PyTorch训练中Dataset多线程加载数据,比Dataloader里设置多个workers还要快】
  20. Leetcode力扣 MySQL数据库 1264 页面推荐

热门文章

  1. ps如何批量处理图片
  2. python绘制花朵图案_Python实现平行坐标图的绘制(plotly)方式
  3. 扁平风轮播图大屏展示html页面源码
  4. 【超详细】全国大学生软件测试大赛:移动应用测试参赛指南
  5. 周易八卦——数字卦预测的程序实现
  6. C# QRCode生成二维码,支持中文,有utf
  7. 配置计算机能不能关机,win7电脑设置关机时间的详细步骤
  8. android mp3 wav转换工具,音频提取转换工具app
  9. VirtualBox管理工具Vboxmanage
  10. CSS如何使用伪元素选择器给所有的div里的文本前面添加小写罗马数字编号