模块导入
Python中的模块导入分为两种方式:import导入 或者 from - import 导入。
import
如果希望从某一个模块中,是一次性把模块中所有的全局变量、函数、类全部导入,就可以使用 import 的方式。
导入模块语法格式:
import 模块名1, 模块名2 或者 import 模块名1 import 模块名2
使用模块中全局变量、函数、类语法格式:
模块名.全局变量名 | 模块名.函数名 | 模块名.类名
示例:
import hm_itcast, random # 全局变量 print(hm_itcast.name) # 函数 ret = hm_itcast.add2num(10, 20) print(ret) # 类 p = hm_itcast.Person() print(p)
from-import
如果希望从某一个模块中,导入部分全局变量、函数、类,就可以使用 from-import 的方式。
导入模块语法格式:
from 模块名1 import 全局变量名, 函数名 from 模块名2 import 类名
使用模块中全局变量、函数、类语法格式:
全局变量名 | 函数名 | 类名
示例:
from hm_itcast import name, add2num # 全局变量 print(name) # 函数 ret = add2num(10, 20) print(ret)
from-import *
如果希望从某一个模块中,导入全部全局变量、函数、类,但是还不想在使用的时候书写模块名,就可以使用 from-import * 的方式。
导入模块语法格式:
from 模块名 import *
使用模块中全局变量、函数、类语法格式:
全局变量名 | 函数名 | 类名
示例:
from hm_itcast import * # 全局变量 print(name) # 函数 ret = add2num(10, 20) print(ret) # 类 p = Person() print(p)
这种方式不推荐使用,因为全局变量、函数、类重名并没有任何的提示,出现问题不好排查。
as的作用
如果使用import 模块名 方式导入模块,如果被导入的模块名过长的时候,可以使用 as 指定模块的别名,以方便在代码中的使用。
示例:
import hm_itcast as hm_it # 全局变量 print(hm_it.name) # 函数 ret = hm_it.add2num(10, 20) print(ret) # 类 p = hm_it.Person() print(p)
如果使用 from 模块名 imoport 全局变量名,函数名,类名 方式导入模块, 如果被导入的全局变量、函数、类和本模块中的全局变量、函数、类的名字重名的时候,可以使用 as 指定全局变量、函数、类的别名。
示例:
from hm_itcast import name as my_name # 全局变量 print(my_name)
例子:
# 01:import # 是把被导入的模块中的全局变量 | 函数 | 自定义类 全部导入 # import random # # 格式: import 模块名 # import hm_itcast # 或者 # import random, hm_itcast # # # # 使用格式: 模块名.全局变量 | 函数 | 自定义类 # # 全局变量 # print(hm_itcast.name) # # 函数 # print(hm_itcast.add2num(10, 11)) # # 自定义类 # print(hm_itcast.Person()) # 02: from-import # 选择性导入 # 格式: from 模块名 import 对应的元素名 # from hm_itcast import name, add2num # # # 使用格式:全局变量 | 函数 | 自定义类 # print(name) # print(add2num(10, 20)) # 03:from-import * # 全部导入 # 格式: from 模块名 import * # from hm_itcast import * # 一般不建议使用. 会造成 变量名 函数名 类名 重名 报错不好查询 # 使用格式:全局变量 | 函数 | 自定义类 # print(name) # print(add2num(10, 20)) # print(Person()) # 04: as的作用 起别名 # 01: 导入的模块名名字较长 # import hm_itcast as hm_it # print(hm_it.name) # 02: from hm_itcast import name as my_name # # 全局变量 # my_name = "小明" # # 分别可以打印 自定义模块 和 小明 # print(name) # print(my_name) # 全局变量 name = "小明" # 分别可以打印 自定义模块 和 小明 print(my_name) print(name)