第50~52讲:模块——模块就是程序

一 模块的基本概念

有关模块的具体内容可参见:https://www.cnblogs.com/luoxun/p/13383993.html

1 什么是模块

  • 容器—>对数据的封装
  • 函数—>对语句的封装
  • 类—>对方法和属性的封装
  • 模块—>模块就是程序
    • 任何.py文件都可看作一个独立的模块

2 命名空间:从名称到对象的映射

3 导入模块

  • import 模块名
  • from 模块名 import 函数名
    • from 模块名 import *  (强烈要求大家不要使用这种方法,除非情况及其特殊)
  • import 模块名 as 新名字
  • 举例:
    • 1 def c2f(cel):
      2     fah = cel * 1.8 + 32
      3     return fah
      4 
      5 def f2c(fah):
      6     cel =(fah - 32) / 1.8
      7     return cel
      class50_TemperatureConversion.py
    • 1 from class50_TemperatureConversion import c2f,f2c
      2 
      3 print("32摄氏度 = %.2f华氏度" % c2f(32))
      4 print("99华氏度 = %.2f摄氏度" % f2c(99))
      class50_calc.py

二 模块的其它相关知识

1 if __name__ = '__main__'

  • 在主程序中调用”__name__“变量,得到的是“__main__”函数;
  • 在模块中调用”__name__“变量,返回的是被导入模块的名字;
  • 举例:
     1 def c2f(cel):
     2     fah = cel * 1.8 + 32
     3     return fah
     4 
     5 def f2c(fah):
     6     cel =(fah - 32) / 1.8
     7     return cel
     8 
     9 def test():
    10     print("测试,0摄氏度 = %.2f华氏度" % c2f(0));
    11     print("测试,0华氏度 = %.2f摄氏度" % f2c(0));
    12 
    13 if __name__ == "__main__":
    14     test()
    class50_TemperatureConversion.py
    1 from class50_TemperatureConversion import c2f,f2c
    2 
    3 print("32摄氏度 = %.2f华氏度" % c2f(32))
    4 print("99华氏度 = %.2f摄氏度" % f2c(99))
    class50_calc.py
  •  具体内容可参考:https://blog.csdn.net/yjk13703623757/article/details/77918633/

2 搜索路径

  • 写好的模块放在哪?
    • 解决方法一:放在和导入该模块的源文件所在位置相同的文件夹里
    • 解决方法二:把模块所在路径添加到python程序的搜索路径中
  • python模块的导入需要一个路径搜索的过程,该搜索路径就是一个列表/一组目录,可以通过sys模块中的path()方法查看系统本身的搜索路径;
    • 自定义模块的最佳存放目录是:site-packages文件夹;
    • 我们可以通过sys.path.append()方法把模块所在位置目录添加到python程序的搜索路径中。

3 包(package)

  • 创建包的过程:
    • (1)创建一个文件夹,用于存放相关的模块,文件夹的名字即包的名字;
    • (2)在文件夹中创建一个__init__.py的模块文件,内容可以为空;
    • (3)将相关的模块放入文件夹中
  • 如何导入包中的模块:import 包名.模块名

三  像极客一样思考

1 python的设计哲学:优雅、明确、简单

   python开发者的哲学:用一种方法,最好是一种方法来做一件事儿

   实际工作中:尽量使用现成的模块

   python电池:python标准库及其里面的模块(python标准库中包含一般任务所需要的模块)

2 学会查看python文档(需要学会英文)

打开IDLE——help——Python Docs F1即可

3 快速熟悉一个模块的方法

  • 在IDLE中导入模块;
  • 利用__doc__属性查看该模块的介绍文档:print(模块名.__doc__);
  • 用dir()内置方法查看模块里面定义的类、函数、方法:dir(模块名)
  • 通过__all__属性查看该模块可供外界调用的所有信息:模块名.__all__
    • 不是所有的模块都有__all__属性
    • 如果一个模块设置了__all__属性,用“from 模块名 import * ”号导入到命名空间,只有all属性列表中的信息才会被导入
  • 通过__file__属性查看该模块源代码所在位置:模块名.__file__
  • 通过help()内置函数查询想要了解的内容

4 timeit模块小甲鱼翻译的文档链接:https://fishc.com.cn/forum.php?mod=viewthread&tid=55593&highlight=timeit

原文地址:https://www.cnblogs.com/luoxun/p/13843474.html