面向对象模块和包

文章目录

      • 1.1 模块
      • 1.2 模块的使用
      • 2 包

1.1 模块

参考链接:
【Python 面向对象】模块和包 来源:CSDN
Python面向对象——模块和包 来源:CSDN

  • 概念: 每一个以py为拓展名的python源文件都是一个模块,模块类似于一个工具包,在模块中定义的全局变量、函数、类都是提供给外界的工具,若要使用该包中的工具,则先导入此模块
  • 模块化: 模块化是指将一个完整的程序分解为一个一个模块,完整的程序由多个模块组成
  • 模块化优点:
    • 方便开发、维护
    • 模块具有复用性

1.2 模块的使用

  • 模块的导入:
    • 方法一:一次性把模块中的所用变量、函数、类全部导入:import
import 模块名1,模块名2(模块名就是python文件,但不包括扩展名.py)
#--------------------------------------------------------------
#或
import 模块名1
import 模块名2
  • 方式二:只导入模块中部分变量、函数、类:import:from …import
from 模块名 import 变量/函数/#----------------------------------------------------------
#为导入的变量等重新赋值
from 模块名 import 变量/函数/as 别名
#------------------------------------------------------------
#也可以用此方法导入模块全部变量、函数、类
from 模块名 import *
  • 调用模块内容:
模块名.变量名
模块名.函数名
模块名.对象名
  • _ _name _ 属性:
    • 每一个模块都有一个__name__属性,通过它可以获取模块的名字
    • 如果在当前程序执行,那么__name__默认值等于字符串__main__
    • 如果被其它文件导入,__name__就是文件名
    • __name__属性值为__main__的模块是主模块,一个程序只有一个主模块
    • __name__属性仅在模块内使用,导入其它文件时不会被执行,因此可作为测试代码
  • 模块函数的覆盖: 如果两个模块有同名函数,则后导入模块的函数会覆盖先导入的模块中函数,因此可以使用as给其中一个重新命名
  • 模块的搜索顺序:
    • 搜索当前目录指定模块名的文件,如果有则直接导入
    • 如果没有,再搜索系统目录
  • 可以在一个程序中引入同一个模块多次,但模块的实例只会创建一次

2 包

参考资料
Python 模块 来源:菜鸟教程
进阶资料:
Python 3.x可能是史上最详解的【导入(import)】来源:CSDN

  • 概念: 包是一个分层次的文件目录结构,它定义了一个由模块及子包,和子包下的子包等组成的 Python 的应用环境。他是一个包含多个模块的特殊目录(文件夹),其中必须包含一个特殊的文件:init.py,但其内容可以为空

你可能感兴趣的:(python)