您当前的位置:首页 >> 人生
【学习】人工智能开发宝典:第二十讲 Python-模块 (module)
发布时间:2019-08-10
 

        为了开发融合人工智能、大数据、云服务、智能通信等技术的融合人工智能增值业务平台及运营,计划写《人工智能开发宝典》和《人工智能运营宝典》。
《人工智能开发宝典》包括:人工智能开发语言选型,开发环境的安装,Python的基础知识,Python数据库编程、Python网络编程、Python大数据编程、Python机器学习编程、Python自然语言处理编程、Python人工智能语音编程、Python人工智能图象编程、Python云服务编程、Python智能通信编程等内容。
您将从《人工智能开发宝典》学到:人工智能涉及到神经网络、机器学习、自然语言处理、语音识别、语音合成、大数据、云计算(含云服务、云客服)、智能通信(含5G应用、融合通信、统一通信)、CTI、软交换、下一代网络、ICT、移动互联网等相关知识。


一、模块的概念

1、模块的定义

        模块是一个包含有一系列变量,函数,类等组成的程序组

        模块是一个文件,模块文件名通常以.py结尾


2、模块的作用

        让一些相关的变量、函数、类等有逻辑的组织在一起,让逻辑结构更加清晰

        模块中的变量、函数和类等可供其他模块或程序调用


3、模块的分类

        a、内置模块(builtins):在解析器的内部可以直接使用

               builtins,sys,time,itertools ,math  ...

        b、标准库模块:安装python时已安装具可直接使用

                random,datetime,os,xml ...

        c、第三方模块(通常开源):需要自己安装

        d、用户自己编写的模块(可以作为其他人的第三方模块)

官方库参考文档:https://docs.python.org/3/library/index.html

4、模块化编程的优点

        a、有利于多人开发

        b、使代码更加易于维护

        c、提高代码的复用率

        d、模块化编程有助于解决函数名和变量名冲突问题


二、模块的导入

1、import 语句

语法

        import 模块名1 [as 模块新名1], 模块名2[as 模块新名2], ....

作用

        将一个模块整体导入到当前模块中

示例


        import math            # 导入数学模块

        import sys, os          # 导入sys和os模块

        import copy as cp

属性用法

        模块名.属性名


math.factorial(5)    # 求5的阶乘

2、from import 语句

语法

        from 模块名 import 模块属性名 [as 属性新名1], 模块属性名2 [as 属性新名2]

作用

        将某模块的一个或多个属性导入到当前模块的作用域

示例


from math import pi

from math import sin

from math import factorial as fac

3、from import * 语句

语法

        from 模块名 import *

作用

        将某模块的所有属性导入到当前的模块

示例


from math import *

s = sin(pi/2)

print(factorial(10))


三、模块的加载和执行

1、import 语句搜索模块的路径顺序

        a. 搜索程序运行时的路径(当前路径)

        b. sys.path 提供的路径

        c. 搜索内置模块

2、PYTHONPATH环境变量

        此环境变量的值会在python3的解析器启动时自动加载到sys.path列表中

3、加载自定义模块方法

        a、方法1

                把自定义的模块和运行的代码放在同一个目录下

        b、方法2

                在运行的代码中追加sys.path.apend(“指定自定义的模块路径”)

        c、方法3

                和内置模块放到一起(不建议)

        d、方法4

                配置当前终端的环境变量


$ export  PYTHONPATH=$PYTHONPATH:/home/xxx/指定自定义的模块路径

$ printenv

注: Linux/Unix 用命令printenv来查看所有的环境变量,export仅作用于当前的终端

4、模块的加载过程

        在模块导入时,模块所有语句会执行

        如果一个模块已经被导入,则再次导入时不会重新执行模块内的语句

5、模块的重新加载

        通过imp模块的reload属性重载指定模块


import mymod       # 自定义的模块

import imp         # 导入imp库

imp.reload(mymod)  # 重新加载已经加载过的mymod 模块

6、模块被导入和执行的过程

        a. 先搜索相关路径找模块(.py文件)

        b. 判断是否有此模块对应的.py文件,如果.pyc文件比.py文件新,则直接加载.pyc文件 

        c. 否则用模块.py 文件生成.pyc并加载执行

7、模块的编译 compile

                    编译                           解释执行

mymod.py   ----->  mymod.pyc   ------->     python3


四、补充

1、dir 函数

        dir([对象])   返回一个字符串列表

作用

        a、如果没有参数调用,则返回当前作用域内所有变量的列表

        b、如果给定一个对象作为参数,则返回这个对象的所在变量(属性)列表

                1) 对于一个模块,返回这个模块的全部变量

                2) 对于一个类对象,返回类对象的所有变量,并递归基类对象的所有变量

                3) 对于其它对象,返回所有变量、类变量和基类变量


往期精彩回顾

学习】人工智能开发宝典:人工智能体系架构

【学习】人工智能开发宝典:python编译过程和执行原理

【学习】人工智能开发宝典:第六讲 运行Python解释器

【学习】人工智能开发宝典:第七讲 运行Python集成开发环境IDLE

【学习】人工智能开发宝典:第八讲 Python 程序构成、核心数据类型

【学习】人工智能开发宝典:第九讲  Python 基础知识点

【学习】人工智能开发宝典:第十讲  Python 基础函数

【学习】人工智能开发宝典:第十一讲    Python - 字符串(str)

【学习】人工智能开发宝典:第十二讲    Python- if 语句、循环语句(while、for)



        【重要】人工智能核心技术:语音识别
         【重要】国家发布 AI 的三年发展计划(2018年-2020)和详细解读(附全文)
                           。

 【学习】自然语言处理技术:第一讲 语法

 【学习】自然语言处理技术:第二讲 形式语法

                   。

 【经典】如何教老婆学python (没有任何编程基础初学者教材)

 【经典】AI引挚+酒店应用:全球第一家机器人酒店(视频)

                   。

 【干货】普通程序员如何转向 AI 方向?

 【干货】各大互联网公司薪酬盘点!哪一家薪资最高?

                   。

 【开发】如何成为一名机器学习算法工程师

 【开发】从零开始教你训练神经网络(附公式&学习资源)

 【开发】用20行Python代码创建一个语音识别系统(附:视频、源码)

                   。 


END



           请您关注“人工智能引擎微信公众号,您将获得最近的人工智能、区块链、大数据、云计算等资讯,行业动态,行业报告,开发资料,项目开发,开发者的交流,投资者的商机等。


        关注步骤:

                1、长按下图二秒。

                2、弹出下图,请选择“识别图中二维码”

                          

                3、选择关注即可。


        要想了解更多人工智能、区块链、大数据、云计算相关资讯,行业动态,行业报告,开发资料等,请点击“阅读原文”。