python——模块(Module)的概念、使用以及安装第三方模块

摘要:
Python有许多内置模块和第三方模块供参考。相同的函数名和变量名可以同时存在于不同的模块中。这是因为python无法完全限制对私有函数或变量的访问。只能说,在实践中不应该引用私有函数或变量。在python中安装第三方模块使用pip管理工具来安装第三方模块。通常,第三方库会在python的官方网站上注册。如果你想安装第三方库,你必须首先知道库的名称,你可以在官方网站或pypi上搜索,比如Pillow。

一、模块定义

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.3workspace> pip

Usage:
  pip <command> [options]

Commands:
  install                     Install packages.
  download                    Download packages.
……

说明我已经安装pip工具。

一般来说,第三方库都会在python官网上注册,如果你要安装一个第三方库,必须先知道该库的名称,可以在官网或者pypi上搜索,比如Pillow。安装Pillow的命令就是:

PS E:python3.6.3workspace> 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操作MySQL数据库spark算法实现——svm支持向量机下篇

宿迁高防,2C2G15M,22元/月;香港BGP,2C5G5M,25元/月 雨云优惠码:MjYwNzM=

相关文章

python 爬虫_PyQuery详细用法

总结:语法和JQuery一样 1. 初始化 from pyquery import PyQuery as pq #用pq代替pyquery doc=pq(html) print(doc('li')) #字符串的初始化 from pyquery import PyQuery as pq...

Cocos2dx-3.0版本 从开发环境搭建(Win32)到项目移植Android平台过程详解

作为重量级的跨平台开发的游戏引擎,Cocos2d-x在现今的手游开发领域占有重要地位。那么问题来了,作为Cocos2dx的学习者,它的可移植特性我们就需要掌握,要不然总觉得少一门技能。然而这个时候各种各样的问题也就来了,之前网上一直有零零碎碎的移植教程,但是都不完整,或是有这样或者那样的问题。今天刚刚研究成功了Cocos2dx-3.0版本项目的安卓平台移植...

supervisor的command执行两条命令

如下supervisor的进程的comand配置参数只能写一个命令 1、要执行多条命令,可以写个sh文件包含多条命令,然后sh -x xxxx.sh,但这样又多了一个文件, 2、把所有命令放在字符串,然后用eval来执行,这样在shell窗口可以执行,但放在supervisor报找不到eval命令。比如: command = eval "python -u...

聊聊 Python 数据处理全家桶(Sqlite篇)

1. 前言 上篇文章 聊到 Python 处理 Mysql 数据库最常见的两种方式,本篇文章继续说另外一种比较常用的数据库:Sqlite Sqlite 是一种 嵌入式数据库,数据库就是一个文件,体积很小,底层由 C 语言编写,经常被集成到移动应用程序中 事实上,Python 内置了 sqlite3 模块,不需要安装任何依赖,就可以直接操作 Sqlite...

python中的收集参数

收集参数在函数定义时在参数前面多加一个*(星号),这个  *  可以将提供的所有值放到一个元组中! 当带*(星号)的参数位于所有参数的最后,则会收集余下参数的值。 当带*(星号)的参数不在所有的参数的末尾,调用参数时,后续参数需要用关键字指定。*(星号)是不会收集带关键字的参数的。 当我们想要收集带关键字的参数时,要怎么办呢? 这样我们就要用到 **...

python向多个邮箱发邮件--注意接收是垃圾邮件

群发邮件注意:三处标红的地方 # -*- coding: UTF-8 -*- import smtplib from email.mime.text import MIMEText from email.mime.multipart import MIMEMultipart from email.header import Header from e...