1、模块就是非常简单的Python文件,单个Python文件就是一个模块,两个文件就是两个模块。
2、模块让你能够有逻辑地组织你的 Python 代码段。把相关的代码分配到一个模块里能让你的代码更好用,更易懂。模块能定义函数,类和变量,模块里也能包含可执行的代码。
3、若你需要在某个py文件中使用其他文件中的函数或类,则需要导入对应的模块,就可重用这些函数和变量。
语法:
import module1,module2
例1:
import random
Fruit = random.choice(['apple', 'pear', 'banana'])
print(Fruit)
语法:
from modname import name1[, name2[, ... nameN]]
例2:
from random import choice
Fruit = choice(['apple', 'pear', 'banana'])
print(Fruit)
1、包其实可以理解为文件夹,这个文件夹下面放着很多模块。(模块其实就是你写的那些.py文件)包其实的作用就是将代码文件给整合在一个文件夹下面,方便调用和管理。
2、包是一个分层次的文件目录结构,它定义了一个由模块及子包,和子包下的子包等组成的Python的应用环境。简单来说,包就是文件夹,但该文件夹下必须存在 __init__.py 文件, 该文件的内容可以为空。__init__.py 用于标识当前文件夹是一个包。
3、包的命名和文件夹命名一样,不过还是那句话,不要用中文。那Python如何识别普通的文件夹与包呢?包有一个标志文件,叫做__init__.py,假如一个文件夹下面有这个模块(文件),那么Python就会认为这个文件夹是一个包。
4、在调用包中的模块后,你会发现在包的文件夹下生成了一个文件夹__pycache__,不需要理会它,是用于加快Python执行速度用的。
python模块的导入需要一个路径搜索的过程。当你导入一个模块,Python解析器对模块位置的搜索顺序是:
1、当前目录
2、如果不在当前目录,Python 则搜索在shell变量PYTHONPATH下的每个目录。
3、如果都找不到,Python会察看默认路径。UNIX下,默认路径一般为/usr/local/lib/python/。
模块搜索路径存储在 system 模块的 sys.path 变量中。变量里包含当前目录,PYTHONPATH和由安装过程决定的默认目录。
例3:查看python的搜索路径
import sys
print(sys.path)
"""
['F:\\Pycharm_project\\Py_Demo\\demo', 'F:\\Pycharm_project\\Py_Demo', (自定义路径)
'C:\\Users\\Administrator\\AppData\\Local\\Programs\\Python\\Python35\\lib',
'C:\\Users\\Administrator\\AppData\\Local\\Programs\\Python\\Python35',
'F:\\Pycharm_project\\Py_Demo\\venv', 'F:\\Pycharm_project\\Py_Demo\\venv\\lib\\site-packages',
'F:\\Pycharm_project\\Py_Demo\\venv\\lib\\site-packages\\pip-10.0.1-py3.5.egg',
'C:\\Users\\Administrator\\AppData\\Local\\Programs\\Python\\Python35\\lib\\site-packages',
若导入的模块没有在这些搜索路径下就会报错
"""
from 包名.模块名 import 函数名(若包名没有在默认搜索路径下,则还需要加上其路径)
from selenium.webdriver.common import utils
模块A:
#包名称为Module下名称为Class_Add 的模块下的类A
class A:
def __init__(self,xx,yy):
self.x=xx
self.y=yy
def add(self):
print("x和y的和为:%d"%(self.x+self.y))
文件B:
from Module.Class_Add import A
#不重写父类的__init__方法
a=A(2,3)
a.add()
容器:例如列表、元组、字符串、字典等,这些是对数据的封装
函数:是对语句的封装
类:是对方法和属性的封装,也就是对函数和数据的封装
模块:模块就是程序,就是平常写的任意代码,保存的每一个.py结尾的文件都是一个独立的模块(模块的名字就是py文件的名字)
包:方便管理多个模块