东莞网站建设选高科技,全屏网站 欣赏,传奇世界新开服网站,网站必须做301重定向吗Python学习之路-模块和包
模块
简介
模块是 Python 程序架构的一个核心概念。每一个以扩展名 py 结尾的 Python 源代码文件都是一个模块#xff0c;模块名同样也是一个标识符#xff0c;需要符合标识符的命名规则。在模块中定义的全局变量、函数、类都是提供给外界直接使用…Python学习之路-模块和包
模块
简介
模块是 Python 程序架构的一个核心概念。每一个以扩展名 py 结尾的 Python 源代码文件都是一个模块模块名同样也是一个标识符需要符合标识符的命名规则。在模块中定义的全局变量、函数、类都是提供给外界直接使用的工具。模块就好比是工具包要想使用这个工具包中的工具就需要先导入这个模块。
导入方式 import导入是一次性把模块中 所有工具全部导入 import 模块名在导入模块时每个导入应该独占一行通过 模块名. 使用模块提供的工具 {{ admonition tip “提示” true }} 开发时 import 代码应该统一写在代码的顶部更容易及时发现冲突。一旦发现冲突可以使用 as关键字给其中一个工具起一个别名import 模块名 as 模块别名 {{ /admonition }} from...import导入如果希望从某一个模块中导入部分工具就可以使用 from ... import 的方式。import 模块名 # 从 模块 导入 某一个工具
from 模块名1 import 工具名导入之后不需要通过 模块名.可以直接使用模块提供的工具。 {{ admonition warning “注意” true }} 如果两个模块存在同名的函数那么后导入模块的函数会覆盖掉先导入的函数 {{ /admonition }} from…import *不推荐 # 从 模块 导入 所有工具
from 模块名1 import *{{ admonition warning “注意” true }} 这种方式不推荐使用因为函数重名并没有任何的提示出现问题不好排查 {{ /admonition }}
模块的搜索顺序
Python 的解释器在导入模块时会先搜索当前目录指定模块名的文件如果有就直接导入如果没有再搜索系统目录。
{{ admonition note “补充” true }}
可以通过sys.path给出的列表查看目录里依次查找要导入的模块文件列表中的路径的先后顺序代表了python解释器在搜索模块时的先后顺序。
可以通过sys.path.append(xxx)的方式添加路径通过sys.path.insert(0, xxx)可以确保先搜索这个路径
想重新导入模块可以reload导入,语法如下
from imp import reload
reload(模块名){{ /admonition }}
{{ admonition warning “注意” true }}
在开发时给文件起名不要和系统的模块文件重名。
{{ /admonition }}
{{ admonition tip “提示” true }}
Python 中每一个模块都有一个内置属性 __file__ 可以查看模块的完整路径。
{{ /admonition }}
__name__ 属性
__name__ 是 Python 的一个内置属性记录着一个字符串。如果是被其他文件导入的__name__就是模块名。如果 是当前执行的程序__name__是__main__。__name__属性可以做到测试模块的代码只在测试情况下被运行而在被导入时不会被执行
{{ admonition note “补充” true }}
在导入时模块中所有没有任何缩进的代码都会被执行一遍在实际开发中通常会在模块下方增加一些测试代码仅在模块内使用被导入到其他文件中不需要执行。可以在if __name__ __main__:下方缩进中编写测试代码从而不会被执行
{{ /admonition }}
包
包是一个包含多个模块的特殊目录目录下有一个特殊的文件__init__.py。包名的命名方式和变量名一致。使用 import 包名 可以一次性导入包中所有的模块
发布模块
如果希望自己开发的模块分享给其他人可以按照以下步骤操作 创建 setup.py from distutils.core import setupsetup(namehm_message, # 包名version1.0, # 版本descriptionitheimas 发送和接收消息模块, # 描述信息long_description完整的发送和接收消息模块, # 完整描述信息authoritheima, # 作者author_emailitheimaitheima.com, # 作者邮箱urlwww.itheima.com, # 主页py_modules[hm_message.send_message,hm_message.receive_message]){{ admonition note “补充” true }} 有关字典参数的详细信息可以参阅官方网站 {{ /admonition }} 构建模块 $ python3 setup.py build生成发布压缩包 $ python3 setup.py sdist{{ admonition warning “注意” true }} 要制作哪个版本的模块就使用哪个版本的解释器执行 {{ /admonition }} 安装模块 $ tar -zxvf hm_message-1.0.tar.gz
$ sudo python3 setup.py install{{ admonition note “补充” true }} 卸载模块 直接从安装目录下把安装模块的 目录 删除就可以 $ cd /usr/local/lib/python3.5/dist-packages/
$ sudo rm -r hm_message*{{ /admonition }}
安装第三方模块
第三方模块通常是指由知名的第三方团队开发的并且被程序员广泛使用的Python包 / 模块。例如 request 就是一套非常成熟的HTTP 服务模块。pip 是一个现代的通用的 Python 包管理工具提供了对 Python 包的查找、下载、安装、卸载等功能。
安装和卸载命令如下
$ sudo pip3 install requests
$ sudo pip3 uninstall requests