• 第十三章 模块[DDT书本学习 小甲鱼]【1】


    13.1 模块就是程序 模块是更高级得封装,学过的封装有哪些?
    ------------------------------------------------------
    容器:列表、元组、字符串、字典等,这是对数据的封装
    函数:是对语句的封装
    类: 是对方法和属性的封装,也就是对函数和数据的封装
    ------------------------------------------------------
    概括:模块就是程序。就是平时写的任何代码,保存的每一个.py结尾的文件,
    都是一个独立模块。
    举例如下:
    在Python的安装目录下创建一个叫hello.py的文件,代码如下:
    def hi():
    print("Hi everyone, I love you!")
    保存此文件后,它就是一个独立的Python模块了(为让IDLE找得到它,需
    要放Python安装目录下)然后,导入这个模块:
    import hello
    hi()
    ----------
    报错!!!!
    NameError:name'hi' is not defined
    为何说我们没有定义它hi()函数?????????????

    13.2 命名空间
    你班有个小花同学,隔壁班也有个叫小花的同学,如何区分?指定班级【命名空间】。
    Python中,每个模块都会维护一个独立的命名空间,我们应该将模块名加上,才能
    正常使用它的函数:
    hello.hi()
    ---------------
    Hi everyone, I love you!
    ===========================================

    13.3 导入模块
    下面介绍一下几种导入模块的方法
    1 import 模块名 在使用模块内部方法时候,必须前置模块名.
    2 from 模块名 import 函数名 (多个函数名用逗号隔开) 不需要每次再写模块名
    还可以用通配符*来导入模块中所有命名空间。但是一般不做建议,会陷入名字混乱。
    3 import 模块名 as 新名字 这一种最为推崇,可以给命名空间一个新的名字
    例如:import easygui as g

    13.4 __name__="__main__"
    模块的作用:
    1.封装和组织Python代码。根据功能不同,将代码分割为不同的模块。
    2.实现代码的重用。
    阅读别人的代码,能使技术水平飞速提升,在阅读代码时,会发现:
    if __name__=="__main__"这么一行语句,却不知道它的作用?举例测试:
    在Python安装目录下新建zhuanhuan.py 里面的代码如下
    def c2f(cel):
    f=cel*1.8+32
    return f
    def f2c(f):
    cel=(f-32)/1.8
    return cel
    def test():
    print("测试,0摄氏度=%.2f华氏度"% c2f(0))
    print("测试,0华氏度=%.2f摄氏度"% f2c(0))
    test()
    ---------------------------------------------
    测试,0摄氏度=32.00华氏度
    测试,0华氏度=-17.78摄氏度
    ==============================================
    运行没有问题,但是在新的.py文件进行引用后,如下:
    import zhuanhuan as tc
    print("32摄氏度=%0.2f华氏度"% tc.c2f(32))
    print("99华氏度=%0.2f摄氏度"% tc.f2c(99))
    ===================我亲自测试,并未出现这四行??!!====================
    测试,0摄氏度=32.00华氏度
    测试,0华氏度=-17.78摄氏度
    32摄氏度=89.60华氏度
    99华氏度=37.22摄氏度
    ==========================================================
    结论:
    if __name__ == "__main__":
    test()
    以上代码的意思是,只有单独运行zhuanhuan.py时才会执行test()函数。

    13.5 搜索路径
    写好的模块放在哪里?读者会说:“不是应该放在和导入这个模块文件的源代码同一个
    文件夹内吗?”没错,这是一种解决方案。但是有的读者可能不希望把所有代码放在一个
    框里,而是通过文件夹方式更好的组织代码。可以做到么?没问题-------搜索路径。
    import sys
    print(sys.path)
    -----------------
    ['C:\PycharmProjects\out\two', 'C:\PycharmProjects\out',
    'C:\PycharmProjects\out\venv\Scripts\python37.zip',
    'C:\Users\Daodantou\AppData\Local\Programs\Python\Python37\DLLs',
    'C:\Users\Daodantou\AppData\Local\Programs\Python\Python37\lib',
    'C:\Users\Daodantou\AppData\Local\Programs\Python\Python37',
    'C:\PycharmProjects\out\venv', 'C:\PycharmProjects\out\venv\lib\site-packages',
    'C:\PycharmProjects\out\venv\lib\site-packages\setuptools-39.1.0-py3.7.egg',
    'C:\PycharmProjects\out\venv\lib\site-packages\pip-10.0.1-py3.7.egg',
    'C:\Program Files\JetBrains\PyCharm 2018.3.4\helpers\pycharm_matplotlib_backend']
    --------------------------------
    import sys
    import zhuanhuan as g
    sys.path.append(r"C:UsersDaodantouAppDataLocalProgramsPythonPython37")
    print(sys.path)
    print(g.c2f(32))
    ------------------------
    ......
    89.6
    ================================
    13.6 包 将模块分门别类放入文件夹,然后告诉Python文件夹位置。
    创建包的具体操作如下:
    1)创建文件夹,用于存放相关模块,文件夹的名字就是包的名字
    2)文件夹中创建一个__init__.py的模块文件,内容可以为空
    3)将相关的模块放入文件夹中
    其中,第二步,必须在一个包目录下建立一个__init__.py的模块,可以
    是一个空文件,也可以是一些初始代码。这个是Pyhton的规定,用来告诉
    Python将该目录当作一个包来处理。
    #新建文件夹M1,将zhuanhuan.py放入文件夹后,进行导入
    import M1.zhuanhuan as g
    print(g.c2f(32))
    ---------------------
    89.6
    =========================== M1文件夹下出现了一个__pycache__文件夹

    Daodantou:“不积跬步,无以至千里.”
  • 相关阅读:
    CMDB表结构设计
    mysql数据库密码
    web之提取状态码
    ELK的启动脚本
    ELK的轻量级搭建使用
    liunx安装JDK
    liunx的urandom生成随机字符
    vim快捷键
    升级系统的python程序
    Mysql的进阶小记
  • 原文地址:https://www.cnblogs.com/daodantou/p/10480406.html
Copyright © 2020-2023  润新知