美文网首页
P 面向对象 | 模块与包

P 面向对象 | 模块与包

作者: Ricsy | 来源:发表于2019-10-03 21:31 被阅读0次


一、模块

名称 描述
模块 每一个以扩展名.py结尾的python源代码文件都是一个模块

1. 模块就好比工具包,要是用这个工具包中的工具,就需要导入这个模块

2. 在模块中定义的全局变量函数都是提供给外界直接使用的工具
模块名 模块名同样也是一个标识符,需要符合标识符命名规则
模块别名 模块名太长,为了方便代码中使用,可以使用as取模块别名

1. 必须符合大驼峰命名法

1.1 模块的导入与使用

  • 模块导入的语句统一写在代码顶部
  • 每个模块的导入应独占一行
  • 导入模块存在函数重名时,后导入的模块的函数会覆盖掉先导入的模块的函数,但是可以通过as取别名进行调用
  • 导入模块(文件)的中所有没有任何缩进的代码都会被执行一遍

提示:

  • 所有没有任何缩进的代码是可直接执行的代码,一般在导包后,不需要被调用执行的测试代码,需要进行以下处理
def main():
   """
   测试代码
   """
   pass


if __name__ == '__main__':
   main()

1.1.1 全部导入

import

import 模块名1 [as 模块别名1] 
import 模块名2 [as 模块别名2]
...
import 模块名n [as 模块别名n]
  • 使用模块:模块名.模块别名.

1.1.2 局部导入

第一种方式:导入部分工具
from ...import

from 模块名1 import 工具名1 [as 工具别名1] 
from 模块名2 import 工具名2 [as 工具别名2]
...
from 模块名n import 工具名n [as 工具别名n]
  • 使用模块:工具名.工具别名.
    第二种方式:导入所有工具
from ...import *

不推荐,函数冲没有提示,出现错误不好排查

  • 使用模块:工具名.

1.2 模块的搜索顺序

先搜索当前目录的指定模块名的文件,如果有就直接导入,如果没有就搜索系统目录

提醒:

  • 开发时,模块名不要与系统模块文件名重名,否则会由于优先级导致系统模块无法使用

eg:

  • 查看模块的内置属性——模块完整路径
    __file__
import random

print(random.__file__)

参阅:


1.3 发布模块

1.3.1 制作发布压缩包

  • 创建setup.py
from distutils.core import setup


setup(
    name='my_test',  # 包名
    version='1.0',  # 版本
    description='',  # 描述信息
    long_description='',  # 完整描述信息
    author='',  # 作者名
    author_email='',  # 作者邮箱
    url='',  # 主页
)
  • 构建模块
    python3 setup.py build
  • 生成发布压缩包
    python3 setup.py sdist

1.3.2 安装模块

  • 解压
    tar -zxvf 文件名.tra.gz
    cd 解压后得到的文件夹
  • 开始安装
    python3 setup.py install

1.3.2 删除模块

  • 直接删除安装目录中对应的的模块文件夹

二、包

  • 包是一个含多个模块的特殊目录
  • 目录下含有一个特殊文件__init__.py
  • 包名的命名方式与变量一致,小写字母+下划线

包 = .py文件(模块)+__init__.py(特殊文件)
import 包名可以一次性导入包中的所有模块

2.1 __init__.py

  • 指定对外界提供的模块列表
from . import 模块名1
from . import 模块名2
...
from . import 模块名n

更新中......


相关文章

  • P 面向对象 | 模块与包

    一、模块 1.1 模块的导入与使用 模块导入的语句统一写在代码顶部 每个模块的导入应独占一行 导入模块存在函数重名...

  • 面向过程和面向对象的区别

    参考文章:面向对象和面向过程的区别面向对象与面向过程的本质的区别 面向过程(pop)和面向对象(oop)是什么 p...

  • P 面向对象 | 面向对象

    一、面向对象 1.1 面向过程与面向对象 1.1.1 面向过程 怎么做 1.1.2 面向对象 谁来做应对复杂的项目...

  • 面向对象01-方法(重载)/包/修饰符

    面向对象01-方法(重载)/包/修饰符 [TOC] 1、面向对象与面向过程 2、类和对象 2.1、类和对象的的创建...

  • 面向对象

    面向对象 机器语言 -> 汇编 -> 低级语言(面向过程) -> 高级语言(面向对象) -> 模块 -> 框架 -...

  • 第七篇 面向对象编程

    一、复习 二、time模块的补充 三、面向对象 四、初始面向对象和类 五、面向对象之间的交互 六、面向对象的组合 ...

  • 模块、面向对象

    1. 内置函数(下) filter(函数,序列) 执行结果: zip合并列表 执行结果 map(函数,序列) 执行...

  • Python基础-OOP

    OOP 思想以模块化思想解决工程问题面向过程 VS 面向对象由面向过程转向面向对象 常用名词OO:面向对象OOA:...

  • Python 面向对象 9: 模块和包

    一、内容总览 1.1、模块 1.2、包 1.3、发布模块 二、模块 2.1、模块的概念:模块是 Python 程序...

  • Python 面向对象 - 09 模块和包

    目录一、模块1.1 概念1.2 模块的两种导入方式1.3 模块的搜索顺序1.4 原则 —— 每一个文件都应该是可以...

网友评论

      本文标题:P 面向对象 | 模块与包

      本文链接:https://www.haomeiwen.com/subject/myidpctx.html