模块 在python中只要是.py格式结尾的文件都可以称之为模块
包 包含一个 __init__.py (init左右两个各有两个_)文件的文件夹就可以称之为一个python的包
包的创建方法如下:
模块和包导入
import 可以导入包和模块;如果需要导入类函数变量等则需要from...import
import 模块名 # 模块名后面不带.py;import不能导入函数;如果要导入的模块和当前模块在同一目录下,可以直接使用这种方法,可能会由于pycharm识别不到会有红色波浪线提示,实际上是可以使用的;如果不在同一目录下使用下面一种方法
from 包名 import 模块名 # 包名,模块名后面不带.py;要导入的模块和当前模块不在同一目录下,需要从项目名下一级(不写项目名0424,如下图)开始逐级导入(如from py0515.package05152 import demo2 注意from后面查找到模块的上一级目录import后面是具体的模块)这种可能就需要每级目录下有__init__.py文件,保险起见最好每级下都创建__init__.py文件,如果没有的话有时候正常,有时候又会报错;此时就需要项目名包名模块名遵循标识符命名规则,否则会报错
导入模块的时候会从上到下执行模块中的代码
导入包的时候,首先会执行__init__.py文件中的代码
import demo1 # 导入demo1模块
demo1.func(9) # 调用demo1模块中的func函数
from py0515.package05152 import demo2 # as 别名 ; 起了别名之后,之后的代码不能用原名demo2
demo2.func(5) # 别名.func(5)
from 包名 import * # *为导入模块所有的内容,但是在PEP8规范中禁止使用,对于不特别熟悉包内容的人员可读性不高
导入模块中的某个函数或者变量
from 模块名 import 变量名/函数 # 在同一目录下,同导入模块
from 包名.模块名 import 变量名/函数 # 不在同一目录下,同导入模块
from demo1 import func as demo1_func # 导入demo1模块的func函数,可以使用as 别名,一般和现有的函数名冲突时可使用别名
demo1_func(6) # 可以直接调用函数
from py0515.package05152.demo2 import func
func(3)
import random 等同于 from random import randint
import keyword 等同于 from keyword import kwlist
__init__.py 作用1、是python包的标识
2、是可以直接把当前模块中常用的函数或者变量等直接导入到__init__.py文件里,在其他地方导入时直接在包里找就行了,不需要再去模块里面找
if __name__ == '__main__' 条件判断语句,只有在直接运行原文件的时候才会成立(原文件作为启动文件)
__name__ 是python中的一个魔法变量(值不是固定的,会改变)
当文件作为程序入口文件(启动文件)时,它的值为__main__
其他情况该模块作为被其他模块导入的时候,它的值为导入模块的模块名
import 模块 通常是导入内置的模块或者第三方的模块
第三方模块 别人写好的python包模块,先安装 requests
安装方法1:命令行输入 pip install requests
安装方法2:pycharm setting里面;同样可以在里面设置换源地址
更新方法:pip install -U 库名 # U必须大写