自学Python之路-Python基础+模块+面向对象
自学Python之路-Python网络编程
自学Python之路-Python并发编程+数据库+前端
自学Python之路-djangohtml
在C语言中若是要引用sqrt这个函数,必须用语句"#include<math.h>"引入math.h这个头文件,不然是没法正常进行调用的。
那么在Python中,若是要引用一些内置的函数,该怎么处理呢?在Python中有一个概念叫作模块(module),这个和C语言中的头文件以及Java中的包很相似
好比在Python中要调用sqrt函数,必须用import关键字引入math这个模块。前端
模块,用一砣代码实现了某个功能的代码集合。
相似于函数式编程和面向过程编程,函数式编程则完成一个功能,其余代码用来调用便可,提供了代码的重用性和代码间的耦合。
而对于一个复杂的功能来,可能须要多个函数才能完成(函数又能够在不一样的.py文件中),n个 .py 文件组成的代码集合就称为模块。如:os 是系统相关的模块。python
模块分为三种:web
1.1 若是你本身定义一个模块,想开源提供给他们使用,是一个开源模块的集散地 https://pypi.python.org/pypi 数据库
1.2 如何安装第三方模块?django
方式一:yum编程
pip (python专用)后端
apt-get网络
方式二:下载源码- 解压源码-进入目录-编译源码- 安装源码python setup.py install并发
1.3 自定义一个模块
举例,建设一个简单的web框架
①首先建立一个Python Package文件,而不是Directory , 区别是Python Package多了一个空的_init_.py空文件(包,该文件表示容许跨目录函数导入)
②在web 下面建立两个Package
Frontend 前端(页面相关的东西)
Backend 后端逻辑处理 程序之间关联度/依赖性下降,松耦合/解耦,由于这样才能几我的并行负责单独的模块,互相调用提升开发效率、代码复用、专业人士开发专用模块 只要接口一致数据库交互查询搜索更改增长等处理结果。
③ 配置文件 存数据库链接信息相关、html代码(全局)
在Python中,每一个Python文件均可以做为一个模块,模块的名字就是文件的名字。
好比有这样一个文件test.py,在test.py中定义了函数add:
#test.py def add(a,b): return a+b
那么在其余文件中就能够先import test,而后经过test.add(a,b)来调用了,固然也能够经过from test import add来引入。
1.4 模块的导入
①将模块放置在同一级内
②经过路径添加
在Python中用关键字import来引入某个模块,好比要引用模块math,就能够在文件最开始的地方用import math来引入。在调用math模块中的函数时,必须这样引用:
模块名.函数名
import math print sqrt(2) #这样会报错 print math.sqrt(2) #这样才能正确输出结果
注释:为何必须加上模块名这样调用呢?由于可能存在这样一种状况:在多个模块中含有相同名称的函数,此时若是只是经过函数名来调用,解释器没法知道到底要调用哪一个函数。因此若是像上述这样引入模块的时候,调用函数必须加上模块名。
导入模块有一下几种方法:
import module from module.xx.xx import xx from module.xx.xx import xx as rename from module.xx.xx import *
导入模块其实就是告诉Python解释器去解释那个py文件
模块导入的路径
sys.path
import sys print (sys.path)
输出:
['D:\\PyCharm Community Edition 2016.3.2', 'D:\\PyCharm Community Edition 2016.3.2', 'C:\\Users\\carlos.jiang\\AppData\\Local\\Programs\\Python\\Python36-32\\python36.zip', 'C:\\Users\\carlos.jiang\\AppData\\Local\\Programs\\Python\\Python36-32\\DLLs', 'C:\\Users\\carlos.jiang\\AppData\\Local\\Programs\\Python\\Python36-32\\lib', 'C:\\Users\\carlos.jiang\\AppData\\Local\\Programs\\Python\\Python36-32', 'C:\\Users\\carlos\\AppData\\Local\\Programs\\Python\\Python36-32\\lib\\site-packages']
安装的路径可能会有些不一样,可是site-packages目录是最佳选择,故只要将模块放入site-packages这样的目录中,全部程序就都能将其导入了。
若是sys.path路径列表没有你想要的路径,能够经过 sys.path.append('路径') 添加。
import sys import os project_path = os.path.dirname(os.path.dirname(os.path.abspath(__file__))) sys.path.append(project_path)