目录
- Python 源代码文件就是⼀个模块
- 模块中定义的变量函数类,都可以让别人使用,同样,可以使用别人定义的(好处:别人定义好的不需要我们再次书写,直接使用即可)
- 想要使用别人的模块中的内容工具(变量,类,函数),必须先导入模块才可以
- 我们自己写的代码,想要作为模块使用,代码的名字需要满足标识符的规则(由数字,字母下划线组成,不能以数字开头)
导入模块的语法
方式一
import 模块名# 使用模块中的内容模块名 .工 具名# 举例import randomimport jsonrandom . randint ( a , b )json . load ()json . dump ()
方式二
from 模块名 import 工 具名# 使用工具名 # 如果是函数和类需要加括号# 举例from random import randintfrom json import load , dumprandint ( a , b )load ()dump ()
方式三 【了解】 基本不用
from 模块名 import * # 将模块中所有的内容都导入from random import *from json import *randint ( a , b )load ()dump ()
# ⽅式⼀ 重点记忆
# import random
#
# print(random.randint(1, 20))
# ⽅式⼆, 重要快捷⽅式导包
# from random import randint
# from random import randint
#
# print(randint(1, 20))
# ⽅式三, 问题: 可能存在多个模块中有相同的名字的⼯具, 会产⽣冲突
from random import *
print(randint(1, 20))
对于导入的模块和工具可以使用 as 关键字给其起别名
注意:如果起别名,原来的名字就不能用了,只能使用别名
模块的查找顺序
- 在导入模块的时候会先在当前目录中找模块,如果找到,就直接使用。
- 如果没有找到回去系统的目录中进行查找,找到,直接使用;没有找到,报错。
注意点:
定义代码文件的时候,你的代码名字不能和你要导入的模块名字相同
__name__ 的作用
- 每个代码文件都是⼀个模块
- 在导入模块的时候,会执行模块中的代码(三种方法都会)
- __name__ 变量
- __name__ 变量,是 python 解释器自动维护的变量
- __name__ 变量,如果代码是直接运行,值是 "__main__"
- __name__ 变量,如果代码是被导入执行,值是 模块名(即代码文件名)
在代码文件中 , 在被导入时不想被执行的代码 , 可以写在 if _ _name __ == "__main__" : 代码的缩进中
代码练习
- 定义⼀个模块 tools.py
- 在模块中定义⼀个函数,func,输出 '我是 tools 模块中的 funn 函数'
- 在模块中定义⼀个类,Dog,具有属性 name, age,方法 play,输出 'xx 在快乐的玩耍'
- 新建⼀个代码文件,调用 tools 模块中的 func 函数 并创建⼀个 Dog 类的对象,调用 play 方法
包(package)
在 Python 中 , 包 是⼀个目录 , 只不过在这个目录存在⼀个文件 _ _init __. py ( 可以是空的 )将功能相近或者相似的代码放在⼀起的--------在 Python 中使⽤的时候 , 不需要可以是区分是包还是模块 , 使用方式是⼀样的random 模块 ( 单个代码文件 )json 包 ( 目 录 )unittest 包 ( 目录 )
- import 包名
- alt 回车 快捷导入