程序是模块 , 模块也是程序

简单定义模块

只要是py 后缀的 文件 及是模块

  1. # 定义模块演示
  2. def Hi():
  3. print("我是hi的 模块")

简单导入模块

  1. 使用 import 文件名 即可导入模块
  1. import test
  2. test.Hi()
  3. -------
  4. 我是hi 模块

image.png

调用的 3 种方法

  1. # 方法1
  2. import test
  3. test.Hi()
  4. # 方法2
  5. from test import *
  6. Hi()
  7. # 方法 3 推荐
  8. import test as t
  9. t.Hi()

基于在文件夹中的模块, 调用方法

  1. import M.M1module as t
  2. t.Hi()
  3. from M.M1module import *
  4. Hi()
  5. import M.M1module
  6. M.M1module.Hi()

模块是程序,程序也是模块

test.py 文件(模块)

  1. def c2f(cel):
  2. fah = cel * 1.8 + 32
  3. return fah
  4. def f2c(fah):
  5. cel = (fah - 32) / 1.8
  6. return cel
  7. def test():
  8. print("测试 , = %.2f我是test的华氏度" % c2f(0))
  9. print("测试 , = %.2f我是test的摄氏度" % f2c(0))
  10. test()
  11. ------------------------ 单独运行这个文件
  12. 测试 , = 32.00我是test的华氏度
  13. 测试 , = -17.78我是test的摄氏度

main.py 文件

  1. import test as t
  2. print("32度的摄氏度 = %.2f华氏度" % t.c2f(32))
  3. print("99华氏度 = %.2f摄氏度" % t.f2c(99))
  4. --------------------------
  5. 测试 , = 32.00我是test的华氏度
  6. 测试 , = -17.78我是test的摄氏度
  7. 32度的摄氏度 = 89.60华氏度
  8. 99华氏度 = 37.22摄氏度

避免模块中的调式代码被打印出来

单独在模块中点击 运行 它的 __**name__** 的输出 是print(__name__) # main
在主程序中点击运行 它的 **__name__** 是 模块的名字 t.__name__ # test

如何避免 , 模块中的测试的print() 的代码 被打印出来????

解决方法如: 使用 if __**name__** == __main__:

test.py 文件

  1. def c2f(cel):
  2. fah = cel * 1.8 + 32
  3. return fah
  4. def f2c(fah):
  5. cel = (fah - 32) / 1.8
  6. return cel
  7. def test():
  8. print("测试 , = %.2f我是test的华氏度" % c2f(0))
  9. print("测试 , = %.2f我是test的摄氏度" % f2c(0))
  10. print(__name__)
  11. if __name__ == "__main__":
  12. test()

main.py 文件

  1. import test as t
  2. print( "这里会打印模块的文件名:", t.__name__)
  3. print("32度的摄氏度 = %.2f华氏度" % t.c2f(32))
  4. print("99华氏度 = %.2f摄氏度" % t.f2c(99))

运行主程序, 得到 以下打印

  1. ---------------------------------------
  2. test
  3. 这里会打印模块的文件名: test
  4. 32度的摄氏度 = 89.60华氏度
  5. 99华氏度 = 37.22摄氏度

搜索路径

python的模块导入, 首先是先搜索路径的!

默认模块路径 sys.path

最佳存放 模块的路径是 \site-packages 这个路径下的

  1. import sys
  2. print(sys.path)
  3. --------------------------
  4. ['e:\\001笔记大全\\008Python01', 'D:\\Program Files\\Python38-32\\python38.zip', 'D:\\Program Files\\Python38-32\\DLLs', 'D:\\Program Files\\Python38-32\\lib', 'D:\\Program Files\\Python38-32', 'D:\\Program Files\\Python38-32\\lib\\site-packages']

加入模块路径

想把自已定义的模块 加入到python 默认搜索模块的路径中

  1. sys.path.append("E:\\001笔记大全\\008Python01")
  2. print(sys.path)
  3. ------------------------ # 此时就会多了一个你添加的模块路径
  4. ['e:\\001笔记大全\\008Python01', 'D:\\Program Files\\Python38-32\\python38.zip', 'D:\\Program Files\\Python38-32\\DLLs', 'D:\\Program Files\\Python38-32\\lib', 'D:\\Program Files\\Python38-32', 'D:\\Program Files\\Python38-32\\lib\\site-packages', 'E:\\001笔记大全\\008Python01']

使用包(package) 管理模块

1.创建一个文件夹,用于存放相关的模块,文件夹的名字即包的名字

2.在文件夹中创建一个init.py的模块文件,内容可以为空;

image.png

  1. # 导入这个模块, 方法也是很简单
  2. import M.M1module as t