点击蓝色“潭时录”关注我丫

加个“星标”,每天和小潭一起快乐的学习

你好,我是在学python的小潭。通过昨天的文章21-python中类的赋值和深浅拷贝我们熟悉了python中的类的赋值和深浅拷贝的知识,今天我们将学习下python中模块。

(一)模块定义

模块,在python中一个扩展名为.py的文件就是一个模块。一个模块中可以包含n多个函数[python程序->模块->函数/类/语句]。

使用模块的好处:

  • 方便其他程序和脚本的导入和使用

  • 避免函数名和变量名冲突

  • 提高代码的可维护性

  • 提高代码的可重用性

代码示例:

# 模块中包含函数def fun():    pass# 模块中可以包含多个函数def fun2():    pass# 模块中可以包含类class Student:    native_place = 'China'  # 类中可以包含类属性    def eat(self, name, age):  # 类中可以包含实例方法        self.name = name        self.age = age    @classmethod  # 类中可以包含类方法    def cm(cls):        pass    @staticmethod  # 类中可以包含静态方法    def sm():        pass# 模块中可以包含变量a = 11b = 22

(二)自定义模块

创建模块,新建一个.py文件,名称尽量不要与python自带的标准模块名称相同。

导入模块方法:

import 模块名称 [as 别名]或from 模块名称 import 函数/变量/类

自定义模块需要在对应文件夹下右键选择Mark Directory as-> Sources Root,使系统识别到自定义模块所在位置,随后可使用以上两种导入方法进行模块导入并使用。

代码示例:

import mathprint(id(math))print(type(math))print(math.pi)print('--------------')print(dir(math))print(math.pow(2, 3), type(math.pow(2, 3)))print(math.ceil(9.099))print(math.floor(10.001))

结果输出:

1913532627600<class 'module'>3.141592653589793--------------['__doc__', '__loader__', '__name__', '__package__', '__spec__', 'acos', 'acosh', 'asin', 'asinh', 'atan', 'atan2', 'atanh', 'ceil', 'comb', 'copysign', 'cos', 'cosh', 'degrees', 'dist', 'e', 'erf', 'erfc', 'exp', 'expm1', 'fabs', 'factorial', 'floor', 'fmod', 'frexp', 'fsum', 'gamma', 'gcd', 'hypot', 'inf', 'isclose', 'isfinite', 'isinf', 'isnan', 'isqrt', 'ldexp', 'lgamma', 'log', 'log10', 'log1p', 'log2', 'modf', 'nan', 'perm', 'pi', 'pow', 'prod', 'radians', 'remainder', 'sin', 'sinh', 'sqrt', 'tan', 'tanh', 'tau', 'trunc']8.0 <class 'float'>1010

(三)以主程序的形式执行

在每个模块的定义中,都包含一个记录模块名称的变量__name__,程序可以检查该变量,以确定他们在哪个模块中执行。如果一个模块不是被导入到其他模块中执行,那么可能是在解释器的顶级模块中执行,其中顶级模块的__name__变量值为__main__。

可使用以下代码进行判断:

if __name__ == '__main' :    pass

代码示例:

# 模块1 demo1.pydef add(a, b):    return a + bprint(add(10, 11))# 模块2 demo2.pyfrom demo3 import addprint(add(100, 200))

结果输出:

21300

代码示例2:

def add(a, b):    return a + b# print(add(10, 11))if __name__ == '__main__':    print(add(10, 11))

结果输出:

300

(四)Python中的包

包是一个分层次的目录结构,它将一组功能相近的模块z组织在一个目录下[python程序->n多个包->n多个模块]。

  • 作用:代码规范,另避免模块名称冲突。

  • 包和目录的区别:

    包含__init__.py文件的目录称为包,而目录中通常不包含__init__.py文件

  • 包的导入:import 包名.模块名

包结构:

代码示例:

# module_A.pya = 30# demo1.pyfrom package.module_A import aprint(a)

结果输出:

30

Python中常用的内置模块:

模块名 描述
sys 与python解释器及其环境操作相关的标准库
time 提供与时间相关的各种函数的标准库
os 提供了访问操作系统服务功能的标准库
calendar 提供与日期相关的各种函数的标准库
urllib 用于读取来自网络服务器的数据标准库
json 用于使用JSON序列化和反序列化对象
re 用于在字符串中执行正则表达式匹配和替换
math 提供标准算术运算函数的标准库
decimal 用于进行精确控制运算精度,有效位数和四舍五入操作的十进制运算
logging 提供了灵活的记录事件,错误,警告和调试信息等日志信息的功能

以上是python中模块的简单介绍,鉴于篇幅原因,我们将在下一期继续学习python中常用内置模块知识,以及第三方模块的安装和使用,敬请期待。

下期预告:python中第三方模块的安装和使用

此模块的调试信息中缺少源信息_22python中的模块相关推荐

  1. 此模块的调试信息中缺少源信息_SpringBoot中的潜在漏洞分析

    Spring Boot是由Pivotal团队提供的全新的开源框架,其设计目的是用来简化新Spring应用的初始搭建以及开发过程.该框架使用了特定的方式来进行配置,从而使开发人员不再需要定义样板化的配置 ...

  2. 政府信息网站模板源码应该包含哪些模块?

    一个专业的政府网站模板应该是一个是一个通过知识管理系统使政府部门职员之间通过顺畅的信息交流和共享,从而大大提高办公效率的一个有利平台,他的主要功能有:知识获取功能.知识传播与享功能.知识的利用和测评功 ...

  3. QUECTEL上海移远4G通讯CAT4模组EC20CEFAG模块串口调试指南之【05EC20模组TCP/IP模块AT指令说明】

    本系列博文将系统性讲解物联网模组系列的实际使用和调试指南,以移远4G模组EC20为例(其他厂家模组的调试方法大同小异),加快嵌入式软.硬件工程师对物联网模组调试和使用的上手速度. 一.准备工作 1.软 ...

  4. Python 技术篇 - 查看python库都包含什么方法,查看python模块某个方法的具体用法源码,查看python模块所在的物理位置,查看python库都包含哪些属性

    很简单! 直接 import 导入要查看的库,然后 help() 就可以了. >>> import PyHook3 >>> help(PyHook3) help(P ...

  5. Lora Ra-01模块初步调试问题记录

    Lora Ra-01模块初步调试问题记录 问题描述:购置的Ra-01模块,下载官方驱动程序,通信不成功,收发端只能串口输出"串口1初始化成功" 开发环境:MDK-ARM V4.12 ...

  6. apt-get阿里源中科大源163源清华源

    本文基于Ubuntu1804操作 一.更新为本地源 修改阿里源为Ubuntu 18.04默认的源 备份/etc/apt/sources.list #备份 cp /etc/apt/sources.lis ...

  7. IntelliJ IDEA 如何知道项目中的模块数据_如何从项目源中选择模块加入当前项目中(添加模块)_如何移除项目中的模块(移除模块/删除模块)

    文章目录 IDEA 如何获取项目的模块数据 从项目源中选择模块加入当前项目中 如何移除项目中的模块 方式一,选择模块的根目录(Content Root),鼠标右键 Remove 方式二,打开[项目结构 ...

  8. failed to open log file_C++中glog源码剖析以及如何设计一个高效 log模块

    每个开发者编程中都会记录log信息,多数人都会使用log第三方库,log库使用起来很方便,但我们也需要了解log系统的原理,这里以glog为例进行分析. 开始 这里不会介绍glog中是如何控制INFO ...

  9. 鸿蒙轻内核源码分析:异常钩子模块系统中断异常,如何转储异常信息

    摘要:本篇介绍下鸿蒙轻内核中异常钩子模块发生系统中断异常时如何转储异常信息. 本文分享自华为云社区<鸿蒙轻内核M核源码分析系列十七(3) 异常信息ExcInfo>,作者: zhushy. ...

最新文章

  1. 每日一皮:终于明白女朋友挂在嘴边的“鸽子蛋”为什么那么贵了...
  2. AlarmManager深入浅出
  3. NLP:以周杰伦的《Mojito》歌词为例字符串切分之清除一段由列表组成的字符串文本中的所有杂乱符号
  4. 追债之旅(Dijkstra最短路)
  5. 【0.96寸 OLED屏实现1500Fps的帧率】STM32 软件、硬件SPI、I2C驱动总结
  6. win10下安装pyspark及碰到的问题
  7. mysql 错误等级_Mysql5.7 的错误日志中最常见的note级别日志解释
  8. c语言学习-编写函数求x的n次方的值
  9. 通过迁移的方式解决Active Directory服务器问题之6
  10. Windows Server 2012 R2 WSUS-3:安装服务器角色
  11. ADB自动化线刷升级安卓车机版本
  12. 基于OpenCV DNN模块给黑白老照片上色(附Python/C++源码)
  13. 微信小程序-云开发上传文件、图片
  14. batchsize和数据量设置比例_1. 项目涉及技术
  15. php微信一次性订阅消息demo,微信一次性订阅消息公众号或网页接入文档说明
  16. linux系统根文件系统构建
  17. python画图双纵轴多张图折线柱状图
  18. 修改Chromium源码实现HEVC/H.265 4K视频播放
  19. 清华大学公开课线性代数2——第8讲:图和网络
  20. xshell6+xftp6软件资源和解决强制更新方法

热门文章

  1. Web服务器的配置与管理(1) IIS的安装与基本设置
  2. python OptionParser模块使用
  3. y查询硬盘内存CPU
  4. 【T-SQL基础】02.联接查询
  5. JSP九大内置对象及四个作用域
  6. Linux中的进程调度(六)
  7. 040、JVM实战总结:案例实战:每日百亿数据量的实时分析引擎,为啥频繁发生Full GC ?
  8. C程序设计语言现代方法11:指针
  9. 【编译工具】之Andorid pthread_cancel函数
  10. bmp转YUV RGB转YUV HM学习