为此 Python 提供了一个办法,把这些定义存放在文件中,这个文件被称为模块。

模块是一个包含所有你定义的函数和变量的文件,其后缀名是.py。模块可以被别的程序引入,以使用该模块中的函数等功能。

你也许还想到,如果不同的人编写的模块名相同怎么办?为了避免模块名冲突,Python又引入了按目录来组织模块的方法,称为包。


一个.py文件就称之为一个模块

举个例子,一个a.py的文件就是一个名字叫a的模块,一个b.py的文件就是一个名字叫b的模块,一个c.py的文件就是一个名字叫c的模块。

创建自己的模块时,要注意:

  • 模块名要遵循Python变量命名规范,如果线上项目不要使用中文、特殊字符。线下自己使用可以用中文,方便归类管理。
  • 模块名不要和系统模块名冲突,最好先查看系统是否已存在该模块。
  • 自己创建模块时要注意命名,不能和Python自带的模块名称冲突。例如,系统自带了sys模块,自己的模块就不可命名为sys.py,否则将无法导入系统自带的sys模块。

模块名字与其他模块冲突

我们的a和b、c这些模块名字与其他模块冲突了,于是我们可以通过包来组织模块,避免冲突。方法是选择一个顶层包名,比如【文章】,因为本地自己使用所以使用中文。为什么选择python2,而不是python2很大原因就是中文编码的支持。

引入了包以后,只要顶层的包名不与别人冲突,那所有模块都不会与别人冲突。现在,【a.py】模块的名字就变成了【文章.a】,类似的,【b.py】的模块名变成了【文章.b】,【c.py】的模块名变成了【文章.c】。

请注意,每一个包目录下面都会有一个__init__.py的文件,这个文件是必须存在的,否则,Python就把这个目录当成普通目录,而不是一个包。__init__.py可以是空文件,也可以有Python代码,因为__init__.py本身就是一个模块,而它的模块名就是【文章】。


import 语句

把一个包、模块全部引入。语法如下:

一个import引入多个模块逗号隔开。多个import引入模块换行。语法如下:


推荐使用多个import引入模块换行。

使用格式:分别引入了两个内置模块datetime和time。其中长方形里面代表的是模块名。

别名:有些模块名很长,不想写这么长和记那么多,就取别名。


from … import 语句

语法如下:

实例引入:

使用介绍:直接使用,不需要模块名。


import 语句和from … import 语句的使用区别:

  • import 语句中使用格式:模块名.方法(属性)。
  • from … import 语句中都是不需要模块名,直接使用方法(属性)。

if __name__ =='__main__':

一个模块被另一个程序第一次引入时,其主程序将运行。如果我们想在模块被引入时,模块中的某一程序块不执行,我们可以用__name__属性来使该程序块仅在该模块自身运行时执行。

定义a和b两个函数,用if __name__ =='__main__':分开

如果看标准的语意许多人都摸不着头脑。我也是学习和找很多资料才弄明白。如果理解就感觉很简单。

执行a和b函数:

输出结果:

在当前文件中可以执行a和b两个函数,如果其他模块把当前文件当做模块引入。

只能执行a函数,找不到if __name__ =='__main__':下面的b函数,执行b函数报错提示没有定义。

这样子可以把if __name__ =='__main__':看成是一条分割线,分为上下两部分。

如果在当前文件就可以运用所有,其他文件引用就只能运用if __name__ =='__main__':上面部分,下面部分就不可以运用。


说明:

每个模块都有一个__name__属性,在它们自己的模块里值都是'__main__'。但是被其他地方引用就不是'__main__',而是文件名。

比如a.py和b.py,本来a和b 的__name__的值都是'__main__'。但是a把b引入,b在a中的__name__=='b.py',b.py不等于a.py。所以不能用b.py if __name__ =='__main__':下面部分的代码。

elementui的css文件没有引入_Python中引入模块详细介绍,使用模块的过程中注意事项教程...相关推荐

  1. Android manifest文件中的标签详细介绍

    Android manifest文件中的标签详细介绍 概要 每一个Android应用都应该包含一个manifest文件,即AndroidManifest.xml.它包含了程序运行的一些必备信息,比如: ...

  2. pythonexcel介绍_Python 中pandas.read_excel详细介绍

    Python 中pandas.read_excel详细介绍 #coding:utf-8 import pandas as pd import numpy as np filefullpath = r& ...

  3. python中soup_python中BeautifulSoup的详细介绍(附代码)

    本篇文章给大家带来的内容是关于python中BeautifulSoup的详细介绍(附代码),有一定的参考价值,有需要的朋友可以参考一下,希望对你有所帮助. Beautiful Soup提供一些简单的. ...

  4. linux的run目录,Linux 中run 目录详细介绍

    原标题:Linux 中run 目录详细介绍 /run 是各种各样数据的家园.例如,如果你查看 /run/user,你会注意到一组带有数字名称的目录. $ ls /run/user 1000 1002 ...

  5. 2020-12-09 深度学习 卷积神经网络中感受野的详细介绍

    卷积神经网络中感受野的详细介绍 1. 感受野的概念 在卷积神经网络中,感受野(Receptive Field)的定义是卷积神经网络每一层输出的特征图(feature map)上的像素点在输入图片上映射 ...

  6. 图像中的一条直线在旋转缩放过程中会有分段现象,或产生分段节点

    图像中的一条直线在旋转缩放过程中会有分段现象. 图像在Windows照片查看器中打开.显示. 使用滚轮放大缩小. 原来的一条直线会分段. 图像旋转方式:16相位(33端).32 原图: 经旋转45,放 ...

  7. 位在c语言中用什么定义,C语言中位段的详细介绍

    C语言中位段的详细介绍 位段(bit-field)是以位为单位来定义结构体(或联合体)中的成员变量所占的空间.含有位段的结构体(联合体)称为位段结构.采用位段结构既能够节省空间,又方便于操作.以下是百 ...

  8. 超声波模块详细介绍(stm32循迹小车中超声波的介绍)

    超声波模块详细介绍(stm32循迹小车中超声波的介绍) 超声波模块是非常重要的一个模块,今天给大家全面介绍一下超声波模块的原理以及用法,代码的编写. 1 超声波模块的认识 首先,市面上的常见超声波模块 ...

  9. csp怎么给线条描边_CSP优动漫PAINT中基本功能详细介绍

    今天我们来看一下CSP优动漫PAINT中基本功能详细介绍,有不清楚的小伙伴,一起来了解一下吧. CSP优动漫PAINT中基本功能详细介绍 颜色丰富多彩.笔感自然真实 通过高级笔压感应功能,展现自然真实 ...

  10. Cesium中图元Primitive详细介绍及案例

    Cesium从入门到项目实战总目录: 点击 文章目录 Cesium中图元Primitive详细介绍 Cesium中Primitive案例 Cesium中图元Primitive详细介绍 在Cesium中 ...

最新文章

  1. 大话中文文本分类之DPCNN
  2. JavaScript强化教程——JavaScript 运算符
  3. opencv学习笔记(六)---图像梯度
  4. 记住这9点,SCI论文结果轻松写
  5. 一段基于Jsoup和Dom4j的海报爬取小程序
  6. 每日一题——leetcode237 删除链表中的结点
  7. JVM——Java对象是如何创建、存储和访问的?
  8. 安装Oracle11g-client
  9. 新浪研发中心: Berkeley DB 使用经验总结
  10. bzoj2229: [Zjoi2011]最小割(最小割树)
  11. keil5安装_Keil 5安装教程
  12. ArcEngine 渲染的使用【转载】
  13. 停止运行_部门动态丨供水运行不能中断,保障维修从未停止
  14. iphone个系列尺寸_iPhone所有机型对比尺寸
  15. 数据可视化——echarts
  16. 方舟linux服务器更新,方舟怎么更新服务器版本 | 手游网游页游攻略大全
  17. The Elliptic Curve Digital Signature Algorithm(ECDSA)学习之路 - 签名验签流程
  18. openni学习摘记
  19. win7计算机名和IP地址,查看电脑win7系统IP地址的三种方法
  20. 手把手教你撸一个泡妞神奇

热门文章

  1. Delphi语言最好的JSON代码库 mORMot学习笔记1
  2. 鼠标移入视频播放,鼠标移出播放停止,恢复到原来状态
  3. BZOJ4107 : [Wf2015]Asteroids
  4. C#使用StreamReader类读取文件文件
  5. 【SDOI 2011】Paint 染色
  6. ASP.NET 2.0服务器控件与组件开发中文版即将出版
  7. 进程间通信之消息队列
  8. spring集成多个rabbitMQ
  9. 搞懂静态变量static
  10. 网络爬虫--12.【XPath实战】获取百度贴吧中的图片