• 第十章 Python 自定义模块及导入方法


    系列文章目录

    第一章 Python 基础知识
    第二章 python 字符串处理
    第三章 python 数据类型
    第四章 python 运算符与流程控制
    第五章 python 文件操作
    第六章 python 函数
    第七章 python 常用内建函数
    第八章 python 类(面向对象编程)
    第九章 python 异常处理
    第十章 python 自定义模块及导入方法
    第十一章 python 常用标准库
    第十二章 python 正则表达式
    第十三章 python 操作数据库



    介绍

    Python 的自定义模块是指用户根据需要编写的 Python 文件,该文件包含 Python 代码,可以被其他 Python 文件导入使用。模块是 Python 代码组织、复用和抽象的一种方式。一个模块可以包含函数、类和变量等定义,还可以包含可执行的代码。模块使得 Python 代码可维护性更强,也便于其他开发者理解和使用。

    要创建一个自定义模块,你只需要创建一个以 .py 结尾的文件,比如 my_module.py。在这个文件中,你可以定义函数、类和变量,还可以编写可执行的代码块。模块中定义的函数和类可以被模块的其他部分调用,也可以被其他模块导入并调用。

    自定义模块

    一个较大的程序一般应分为若干个程序块,若干个程序块称为模块,每个模块用来实现一部分特定的功能。
    这样做的目的是为了将代码有组织的存放一起,方便管理和重复应用

    # 定义一个模块
    # vim mymodule.py
    name = "wang"
    def count(a,b):
        result = a * b
        return f"{a}{b}的乘积是:{result}"
    
    # 使用模块的方法:
    # import <模块名称>
    # from <模块名称> import <方法名>
    # 注:模块名称即py文件名称
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11

    示例

    # vim mymodule.py
    name = "wang"
    def count(a,b):
        result = a * b
        return f"{a}{b}的乘积是:{result}"
    
    class Calc():
        def __init__(self,a,b):
            self.a = a
            self.b = b
        def count(self):
            return self.a * self .b
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
    • 12
    
    # vim de.py
    # 使用模块的方法
    import mymodule
    # 调用变量
    print(mymodule.name)
    # 执行函数
    print(mymodule.count(5,6))
    # 执行类
    calc = mymodule.Calc(5,6)
    print(calc.count())
    
    from mymodule import count # 导入单个的
    # from mymodule import *   # 导入所有的
    print(count(5,6))
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
    • 12
    • 13
    • 14
    • 15

    在这里插入图片描述

    _name_==“main” 作用

    mymodule.py作为一个模块,我们希望保留末尾测试代码,既上面调用函数和类,但也不希望再导入模块的时候执行。该怎么办呢?
    可以利用Python文件的一个内置属性__name__实现,如果直接运行Python文件,__name__的值是"main",如果import一个模块,那么模块的__name__的值是"文件名" 。

    示例

    # vim mymodule.py
    print(__name__)
    
    • 1
    • 2
    # vim de.py
    # 使用模块的方法
    import mymodule
    
    • 1
    • 2
    • 3

    在这里插入图片描述

    # vim mymodule.py
    if __name__ == "__main__":
        print("我再手动执行这个程序")
    else:
        print("其他程序调用了我")
    
    • 1
    • 2
    • 3
    • 4
    • 5
    # vim de.py
    # 使用模块的方法
    import mymodule
    
    • 1
    • 2
    • 3

    在这里插入图片描述

    模块帮助文档

    我们知道,在定义函数或者类时,可以为其添加说明文档,以方便用户清楚的知道该函数或者类的功能。
    自定义模块也不例外,也可以添加说明文档,与函数或类的添加方法相同,既只需在模块开头的位置定义一个字符串即可

    _doc_

    # vim mymodule.py
    '''
    这是一个统计的模块
    提供了有以下几种使用方法:
    变量
    函数
    类
    '''
    name = "wang"
    def count(a,b):
        result = a * b
        return f"{a}{b}的乘积是:{result}"
    
    class Calc():
        def __init__(self,a,b):
            self.a = a
            self.b = b
        def count(self):
            return self.a * self .b
    if __name__ == "__main__":
        print("我再手动执行这个程序")
    else:
        print("其他程序调用了我")
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
    • 12
    • 13
    • 14
    • 15
    • 16
    • 17
    • 18
    • 19
    • 20
    • 21
    • 22
    • 23
    vim de.py
    # 使用模块的方法
    import mymodule
    
    # 查看模块帮助
    print(mymodule.__doc__)
    # 调用变量
    print(mymodule.name)
    # 执行函数
    print(mymodule.count(5,6))
    # 执行类
    calc = mymodule.Calc(5,6)
    print(calc.count())
    
    from mymodule import count # 导入单个的
    # from mymodule import *   # 导入所有的
    print(count(5,6))
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
    • 12
    • 13
    • 14
    • 15
    • 16
    • 17

    在这里插入图片描述

    import os
    print(os.__doc__)
    
    • 1
    • 2

    在这里插入图片描述

    help

    # 使用模块的方法
    import mymodule
    # 查看模块帮助
    help(mymodule)
    
    • 1
    • 2
    • 3
    • 4

    在这里插入图片描述


    总结

    以上就是今天学习的内容,本文仅仅简单学习了python自定义模块及导入使用。

  • 相关阅读:
    Hive的基本知识与操作
    如何用 GPTs 帮你写科研项目申请书?
    CSS文本超限后使用省略号代替
    HTML5期末大作业:HTML+CSS茶叶官网网页设计实例 企业网站制作
    我用EasyExcel优化了公司的导出(附踩坑记录)
    朴素贝叶斯分类器 #数据挖掘 #Python
    使用MySQL如何查询一年中每月的记录数
    Nginx rewrite规则实现http跳转到https及301永久重定向
    SpringBoot 学习(三)Web 开发
    Syncovery for Mac v10.14.3激活版:文件备份和同步工具
  • 原文地址:https://blog.csdn.net/weixin_42434700/article/details/134240205