47.模块

  1. 模块
    1. 模块的概念
    2. 模块的两种导入方式
    3. 原则——每一个文件都应该可以被导入的

模块

模块的概念

模块是Python程序构架的一个核心概念

  • 每一个扩展名 py 结尾 的Python源文件都是一个模块
  • 模块名同样也是一个标识符,需要符合标识符的命名规则
  • 在模块中定义个全局变量、函数、类都是提供给外界直接使用的工具
  • 模块就好比是工具包,想要使用这个工具包中的工具,就需要先导入这个模块
    import sys
    sys.pyth
    可以显示搜索路径

模块的两种导入方式

1)import 导入
import 模块名1,模块名2
提示:在导入模块时,每个导入应该独占一行

import 模块名1
import 模块名2
  • 导入之后
    • 通过 模块名. 使用模块提供的工具——全局变量、函数、类

使用as指定模块的别名

  • 如果模块名字太长,可以使用import 模块名词 as 别名
    模块别名应该符合大驼峰命名法

2)from…import 导入

  • 如果如果希望从某一个模块中,导入部分工具,就可以使用from...import的方式
  • import 模块名 是一次性把模块中所有工具全部导入,并且通过模块/别名访问
1
2
# 从模块中导入某一工具
form 模块名1 import 工具名
  • 导入之后
    • 不需要通过 模块名.
    • 可以直接使用模块提供的工具——全局变量、函数、类

注意
如果两个模块,存在同名的函数,那么后导入模块的函数会覆盖掉先导入的函数

  • 开发时,import 代码应该统一写在代码顶部,更容易及时发现冲突(灰色)
  • 一旦发现冲突,可以使用as关键字给其中一个工具起一个别名

原则——每一个文件都应该可以被导入的

  • 一个独立的Python文件就是一个模块
  • 在导入文件时,文件中所有没有任何缩进的代码都会被执行一遍

实际开发场景

  • 在实际开发中,每一个模块都是独立开发的,大多有专人负责
  • 开发人员通常会在模块下方增加一些测试代码
    • 仅在模块内使用,而被导入到其他文件中不需要执行

__name__属性

__name__属性可以做到,测试模块的代码只在测试情况下被运行,而在被导入时不被执行!

  • __name__时Python的一个内置属性,记录着一个字符串
  • 如果是被其他文件导入的 __name__就是模块名
  • 如果是当前执行的程序,__name__就是__mian__
    在很多Python文件爱你中都会看到以下格式的代码
1
2
3
4
5
6
7
8
9
10
11
12
# 导入模块
# 定义全局变量
# 定义类
# 定义函数

# 在代码的最下方
def main()
#....
pass
# 根据 __name__判断是否执行下方代码
if __name__ == "__main__":
main()

form imp import reload
realad(xx)
重新导入


转载请注明来源,欢迎指出任何有错误或不够清晰的表达。可以邮件至gxnucgb@qq.com

文章标题:47.模块

文章字数:746

本文作者:陈桂彬

发布时间:2019-08-07, 09:37:54

最后更新:2019-08-20, 21:39:22

原始链接:https://github.com/gxnucgb/gxnucgb.github.io/2019/08/07/47-模块/

版权声明: "署名-非商用-相同方式共享 4.0" 转载请保留原文链接及作者。

目录
×

喜欢就点赞,疼爱就打赏

github