模块的导入

知识点

导入模块

1
2
3
4
5
6
7
8
# 导入模块时,每个导入应该独占一行
import 模块名
# 为导入的模块设置别名, 别名的命名规则符合大驼峰命名法
import 模块名 as 别名
# 希望从一个模块中导入部分工具,这种导入的方式可以直接使用导入的工具
from 模块名 import 函数
# (不推荐使用)将一个模块中所有的函数全部导入
from 模块名 import *

导入同名模块

1
2
3
# 导入同名函数时,可以使用as给其中一个函数取别名的方式
# 在未取别名时,后面导入的同名函数会覆盖掉之前的函数
from 模块名 import 函数 as 别名1

模块搜索顺序

1
2
3
4
# 导入模块时,python会在当前目录下搜索指定模块名的文件,如果有则直接导入,如果没有就搜索系统目录
# 给自建模块起名时,不要和系统的模块名重名
# python中每一个模块都有属性__file__可查看模块的具体路径
print(模块名.__file__)

模块导入原则

1
2
3
4
5
6
7
8
9
10
# 每个被开发的独立文件都是一个模块,导入文件时,文件所有无任何缩进的代码都会被执行一遍。
# __name__属性:可以用于调试当前模块下的代码,位置位于文末。
print(__name__) # 直接执行输出的是"__main__"

# 在代码的最下方,添加一些调试代码
def main():
调试的所有代码

if __name__ == "__main__":
main()

作业

  1. (问答)给导入模块设置别名,这个别名的命名规则是什么
  2. 导入模块requests,并将其设置别名未Shuai
  3. 从模块requests中导入方法get
  4. 将requests中所有的方法全部导入
  5. (问答)当导入的多个模块中的方法同名时,此时会发生什么?应当如何处理?
  6. 打印出requests包的详细路径
  7. (问答)我们自己创建模块时,需要注意什么
  8. (问答)请简答python中模块的搜索顺序
  9. (问答)刚导入模块时,其模块文件中的代码是否会被执行
  10. (问答)写完一个模块的代码后,如果想在当前模块中调试代码,但又不希望别的模块调用时执行我们的调试代码,此时如何解决