Python之路【第十八篇】:模块知识

模块,使用一些代码实现某个功能的代码集合,单独的.py文件或者是.py文件的集合就成为模块

模块类型

有三种类型的模块:

  • 内置模块:python自己提供的模块,如time模块,datatime模块等,这些模块存放在python安装路径下的Lib文件夹中
  • 自定义模块:自己编写的模块
  • 第三方模块:下载的别人已经写好的模块

第三方模块安装方法汇总

1、在IDE中安装

file---->settings---->Project Interpreter

进入上述页面后,在页面右边可以找到一个+号,点击+号,搜索需要的包,下载即可

2、pip 安装

python3中用pip3进行安装,所以需要先安装pip3,然而pip3依赖setuptools,所以需要先安装setuptools

python3中默认自带pip3,这就方便了好多,注意要把pip3的路径放到环境变量中,要不在cmd窗口找不到

pip install安装,如pip3 install requets

pip uninstall卸载

3、easy_inatall安装

windows下,上述方法不好用时,使用easy_install安装第三方库:
进入python安装目录下的Scripts文件夹,执行easy_install 模块名字
即:

cd /d d:/python_2.7.14.amd64/Scripts     这是自己的python安装路径
easy_install module_name

4、源码安装

下载源码,将源码解压

在cmd窗口下,进入源码含有setup.py的路径下

python setup.py install

5、Anaconda安装

打开anaconda prompt,使用conda install命令进行安装

将pycharm中的python环境改为anaconda下的python解释器即可。

导入模块

import sys,os同时引入两个模块,但是不建议这么做

import modulename
from modulename import function
from lib.account import login(lib文件夹中有account.py文件,account文件中有login函数),也可以import lib.account
在导入的时候可以通过as设置别名

路径

在pycharm中通过sys.path可以看到模块导入的路径,如果在前面的路径中发现了模块,后面的路径就不再搜寻了,所以在自定义模块时,不要与内置模块重名unction

import sys
print(sys.path)

输出结果为:

['E:\PythonProject\Test1', 'E:\PythonProject\Test1', 'D:\python-3.5.4.amd64\python35.zip', 'D:\python-3.5.4.amd64\DLLs', 'D:\python-3.5.4.amd64\lib', 'D:\python-3.5.4.amd64', 'D:\python-3.5.4.amd64\lib\site-packages']
这个就是模块的搜索路径,如果里面没有自己想要的路径,可以通过如下语句添加:

sys.path.append()

对于python,导入一个模块之后,下次再导入是失效的,已经在内存里面了,这时python的一个优化机制

py文件的全局变量

对于一个.py文件,执行print(vars()) 

{'__spec__': None, '__name__': '__main__', '__package__': None, '__builtins__': <module 'builtins' (built-in)>, '__loader__': <_frozen_importlib_external.SourceFileLoader object at 0x000001667E604C88>, '__doc__': None, '__cached__': None, '__file__': 'E:/PythonProject/Test1/模块/index.py'}

__name__:如果是主文件,__name__=='__main__',否则等于模块名,执行的是哪个文件,__name__==__main__,否则等于模块名,常用来做一个判断,做主函数

#!/usr/bin/env python
# -*- coding:utf-8 -*-

import re
print(re.__name__)
print(__name__)
输出结果为:
re
__main__

调用主函数前,必须加if __name__ == '__main__':

__loader__

__file__:py文件自己的路径

#!/usr/bin/env python
# -*- coding:utf-8 -*-
#进行目录拼接,并且把新目录添加到sys.path中
import os
import sys

# print(__file__)获取当前目录
# print(os.path.dirname(__file__))获取到上一级目录

temp = os.path.dirname(__file__)
b = 'bin'
new_path = os.path.join(temp,b)
sys.path.append(new_path)

__cached__:缓存,pyc文件,当前文件也为None

__builtins__:内建函数

__doc__:py文件的注释

#!/usr/bin/env python
# -*- coding:utf-8 -*-
'''
文件的注释
'''
print(__doc__)
输出结果为:文件的注释

__spec__

__package__:当前py文件在哪个文件夹下面,用点划分,当前文件为None

这里需要详细整理的是(这两个最常用):

1、主文件

if __name__ == '__main__'

2、__file__

利用os.path.dir

os.path.join

3、内置函数在__builtins__里

常用模块学习链接:点击这里

三样东西有助于缓解生命的疲劳:希望、睡眠和微笑。---康德
原文地址:https://www.cnblogs.com/ronghe/p/8806891.html