python——模块(Module)的概念、使用以及安装第三方模块
一、模块定义
python中,一个.py文件就是一个模块(Module)。
使用模块的好处:
1、提高了代码的可维护性。我们把函数进行分组,分别放在不同的模块中。
2、编写代码不必要从0开始,当一个模块编写完毕,就可以被其他的模块引用。python有很多内置的模块和第三方模块供引用。
3、可以避免函数名和变量名重复。相同的函数名和变量名可以同时存在于不同的模块中。
如果编写了同名的模块,可以通过引用包(package)的概念来解决。
一个标准的包的结构如下:
mycompany
├─ web
│ ├─ __init__.py
│ ├─ utils.py
│ └─ www.py
├─ __init__.py
├─ abc.py
└─ xyz.py
1)可以有多级目录结构,组成多层次的包结构
2)每个包的根目录中必要要存在__init__.py的文件。否则这就不是一个包,而是一个普通的目录
3)__init__.py文件可以为空文件,也可以有python代码。它本身就是一个模块,模块名是mycompany
4)abc.py的完整模块名是mycompany.abc
5)utils.py的完整模块名是mycompany.web.utils
6)web目录下面的__init__.py的完整模块名是mycompany.web
创建自己的模块时,请遵循python的变量命令规范,不要有中文、特殊字符;另外,也不能创建和系统模块已经存在的模块。
二、模块的使用
python内置了很多模块。可以通过 模块名.参数名 或者 模块名.函数名 来查询或者调用相应的功能。
当我们在命令行运行一个.py模块文件的时候,python解释器会把一个特殊变量_name__置为__main__,通常可以利用这一点使用 if __name__ == __main__ 代码实现测试。
作用域
public和private在python中的定义:
一般的,正常的函数和变量名是公开的(public),可以直接被引用,比如abc,x,PI等;
类似__xx__这样的变量是特殊变量,可以直接被引用,但是有特殊用途,比如__author__,__name__,__doc__就是特殊变量;
类似_XXX和__xxx这样的函数或变量就是非公开的(private),不应该直接引用;这里用的词是不应该,而不是不能。是因为,python并没有一种方法可以完全限制访问private函数或变量,只能说,习惯上不应该引用private函数或者变量。
安装第三方模块
在python中,是通过pip管理工具来安装第三方模块的。
如果操作系统是Mac或者Linux,可以直接跳过pip这个步骤;
如果是windows,在命令行下,输入 pip,看是否有相关命令提示,如果有,则说明已安装,如果提示未找到命令,可能你还得需要重新运行安装程序,添加pip,并且确保勾选Add python.exe to path 选项。
PS E:\python3.6.3\workspace> pip Usage:
pip <command> [options] Commands:
install Install packages.
download Download packages.
……
说明我已经安装pip工具。
一般来说,第三方库都会在python官网上注册,如果你要安装一个第三方库,必须先知道该库的名称,可以在官网或者pypi上搜索,比如Pillow。安装Pillow的命令就是:
PS E:\python3.6.3\workspace> pip install Pillow
Collecting Pillow
Downloading Pillow-5.0.0-cp36-cp36m-win32.whl (1.4MB)
2% |█ | 40kB 5.1kB/s eta 0:04:23
python——模块(Module)的概念、使用以及安装第三方模块的更多相关文章
- python 安装第三方模块
在Python中,安装第三方模块,是通过setuptools这个工具完成的. 如果你正在使用Mac或Linux,安装setuptools本身这个步骤就可以跳过了. 如果你正在使用Windows,请首先 ...
- python使用pip安装第三方模块遇到的问题及解决方法
python使用pip安装第三方模块遇到的问题及解决方法 关注公众号"轻松学编程"了解更多. 使用国内源: 清华:https://pypi.tuna.tsinghua.edu.cn ...
- sae python安装第三方模块
sae python安装第三方模块 经过这一个星期的折腾,发现编程真心不是看出来的,真心是跟着书上的代码敲出来的.sae的服务做得很好,不过有时候会崩就是了.当sae上没有自己所需要的第三方模块时,可 ...
- 【Python】[模块]使用模块,安装第三方模块
一个.py文件就称之为一个模块(Model)按目录来组织模块的方法,称为包(Package)每一个包目录下面都会有一个__init__.py的文件内置函数1.使用模块 导入模块 import sys ...
- 安装第三方模块方法和requests
如何安装第三方模块 pip3 pip3 install xxxx 源码 下载,解压 进入目录 python setup.py inst ...
- Nginx编译安装第三方模块http_substitutions_filter_module2222
Nginx编译安装第三方模块http_substitutions_filter_module Rming -- 阅读 安装 Http 编译 module filter nginx 模块 >> ...
- Nginx编译安装第三方模块http_substitutions_filter_module
Nginx编译安装第三方模块http_substitutions_filter_module 分类:服务器技术 作者:rming 时间:-- . >>ngx_http_substitu ...
- Anaconda安装第三方模块
Anaconda安装第三方模块 普通安装: 进去\Anaconda\Scripts目录,conda install 模块名 源码安装: 进去第三方模块目录,python install setup.p ...
- nanopi NEO2 学习笔记 2:安装 pip 和 pip 安装第三方模块
我现在越来越喜欢用python做开发了,特别是知道了python还能用rpi.gpio库操作 NEO2 的 io 口之后,更是激动 在进行一下的操作之前,要先更换国内的 apt arm64 源,并更新 ...
随机推荐
- css三大特效之优先级
1.什么是优先级作用:当多个选择器选中同一个标签,并且给同一个标签设置相同的属性时,如何层叠就由优先级来确定
- 高性能消息队列(MQ)Kafka 简单由来介绍(1)
Kafka是由Apache软件基金会开发的一个开源流处理平台,由Scala和Java编写.Kafka是一种高吞吐量的分布式发布订阅消息系统,它可以处理消费者在网站中的所有动作流数据. 这种动作(网页浏 ...
- Makefile使用指南
转载请标明出处:http://blog.csdn.net/shensky711/article/details/52231202 本文出自: [HansChen的博客] 什么是Makefile Mak ...
- No provider available for the service com.xxx.xxx 错误解决
HTTP Status 500 - Servlet.init() for servlet springmvc threw exception type Exception report message ...
- Objective-C (OC)
1.OC 运行效率比较高,仅次于c.开发过程时,效率也比较高,不会次于java和C++: :表示继承 “{}”之间写字段或声明 }和@end之间写函数 import 相当于include 作用于和j ...
- react中简单倒计时跳转
其实在react中实现倒计时的跳转方法有很多中,其中我认为较为好用的就是通过定时器更改state中的时间值. 首先在constructor中设置10秒的时间值: constructor () { su ...
- 品HashMap(java8)
前言 作为java开发人员,HashMap可谓是业务中的一把利器,9龙再次捡起这老生常谈的知识点,深入源码,细细品味. 首先,我们抛出几个关于HashMap的问题,带着问题去学习,就像捉迷藏一样有意思 ...
- mysql5.7 gruop by报错this is incompatible with sql_mode=only_full_group_by
解析:在mysql 工具 搜索或者插入数据时报下面错误: ERROR 1055 (42000): Expression #1 of SELECT list is not in GROUP BY cla ...
- 可能是全网最简单的 OpenStack 安装方式
OpenStack 因为架构复杂,配置较多,一向以安装部署过程困难闻名.虽然 OpenStack 社区前后涌现出了很多的自动化部署工具,但是对于普通用户,特别是新人来说,上手仍然有难度. 使用本文介绍 ...
- mininet(一)实验环境搭建
mininet(一)实验环境搭建 mininet(二)简单的路由实验 mininet(三)简单的NAT实验 最近学习(https://github.com/mininet/openflow-tutor ...