python-17-包和模块-创建属于自己的python工具包

部署运行你感兴趣的模型镜像

python-17-包和模块

一.说明

python中的基础系列关于组织代码的基本单位就是包和模块,在真实项目中我们不可能将所有代码都写在一起,或者我们的一些工具类库等需要单独处理,方便各模块调用,怎么办?这时候包和模块就来了,可以很方便的帮我们组织代码。来开始我们今天的日拱一卒!。

二.模块

  • 定义:

    模块是一个包含 Python 代码的文件,通常以 .py 结尾。模块可以定义函数、类和变量,也可以包含可执行代码。

    模块一般分为 自定义模块 内置标准模块 开源模块(第三方模块),我们这章重点介绍自定义模块

  • 创建模块

    让我们创建一个简单模块 mymodule.py,内容如下:

    # mymodule.py
    def greet(name):
         return f"Hello, {name}!"
    PI = 3.14159
    
  • 调用模块

    在模块当前目录下,创建main.py文件,内容如下

    # mymodule.py
    import mymodule
    print(mymodule.greet("Alice")) # 输出: Hello, Alice!
    print(mymodule.PI) # 输出: 3.14159
    
  • 多种导入方式

    1. 整包导入 import mymodule

      # mymodule.py
      import mymodule
      print(mymodule.greet("Alice")) # 输出: Hello, Alice!
      print(mymodule.PI) # 输出: 3.14159
      
    2. 使用 from ... import ...

      # mymodule.py
      from mymodule import greet,PI
      print(greet("Alice")) # 输出: Hello, Alice!
      print(PI) # 输出: 3.14159
      
    3. 使用 from ... import *

      # mymodule.py
      from mymodule import *
      print(greet("Alice")) # 输出: Hello, Alice!
      print(PI) # 输出: 3.14159
      
    4. 使用 import ... as ...

      # mymodule.py
      import mymodule as  my_m
      print(my_m.greet("Alice")) # 输出: Hello, Alice!
      print(my_m.PI) # 输出: 3.14159
      

三.包

  1. 定义

    包是一个包含多个模块的文件夹。包通过一个特殊的 __init__.py 文件来标识,文件可以是空的,也可以包含初始化代码。

  2. 创建包 我们在项目文件里面创建一个文件夹utils,里面包含3个文件__init__.pymodule1.pymodule2.py,内容如下:

    # __init__.py
    #空的 暂时什么都不用写
    
    # module1.py
    def func1():
         return "Function 1 from module 1"
    
    # module2.py
    def func2():
         return "Function 2 from module 2"
    

    整体结构如下:

    在这里插入图片描述

  3. 引入包

    在主程序 main.py中引入 utils包,内容如下:

    # main.py
    from utils import module1, module2
    print(module1.func1()) # 输出: Function 1 from module 1
    print(module2.func2()) # 输出: Function 2 from module 2
    
  4. 多种方式来导入包

    • 导入整个模块

      # main.py
      import utils.module1
      import utils.module2
      print(utils.module1.func1())# 输出: Function 1 from module 1
      print(utils.module2.func2())# 输出: Function 2 from module 2
      
    • 使用别名

      import utils.module1 as m1
      import utils.module2 as m2
      print(m1.func1())
      print(m2.func2())
      
    • 导入特定函数或类

      from utils.module1 import func1
      from utils.module2 import func2
      print(func1())
      print(func2())
      
    • 导入所有内容(不推荐)

      from utils.module1 import *
      from utils.module2 import *
      print(func1())
      print(func2())
      
  5. __init__.py 文件的作用

    在刚刚举例中 __init__.py 文件是一个空文件,那么这个文件具体是用来干嘛的呢?一般来说总结有以下几点:

    1. 标识包:使得 Python 知道该目录是一个包,可以导入其中的模块。

    2. 初始化代码:在包导入时自动执行,可以用于设置包的初始状态或导入子模块。

    3. 控制导入内容:可以通过定义 __all__ 列表,控制从包中导入时可访问的模块或对象。

    # utils/__init__.py
    from .module1 import func1
    from .module2 import func2
    __all__ = ['func1', 'func2'] # 控制导入内容
    
    '''
    这样,当你使用 from mypackage import * 时,只会导入 func1 和 func2。
    '''
    
    

四.总结

Python 中包和模块 大家重点学会包的创建和导入,导入的方式很多,大家根据自己的习惯来灵活实现包和模块的导入,通过本章的介绍 大家可以自己动手 创建属于自己的工具包!

创作整理不易,请大家多多关注 多多点赞,有写的不对的地方欢迎大家补充,我来整理,再次感谢!

您可能感兴趣的与本文相关的镜像

Python3.8

Python3.8

Conda
Python

Python 是一种高级、解释型、通用的编程语言,以其简洁易读的语法而闻名,适用于广泛的应用,包括Web开发、数据分析、人工智能和自动化脚本

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

SEEONTIME

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值