跳转至

公共函数

当您的业务逻辑变得复杂时,将所有代码都放在一个 API 函数中会变得难以维护。这时,您可以将可复用的部分抽离到公共函数 (Common Function) 中。

公共函数类似于可复用的代码库,它们不能直接通过 API 调用,但可以被任何 API 函数引用,从而实现代码复用和逻辑解耦。

一个公共函数模块可以包含任意数量的函数和类。

1. 创建公共函数

首先,创建一个公共函数模块。例如,我们创建一个名为 math_utils 的模块,用于执行数学运算。

# 公共函数模块: math_utils
from loguru import logger

def add(a, b):
    """简单的加法函数"""
    logger.info(f"执行 add({a}, {b})")
    return a + b

class AdvancedCalculator:
    """一个支持设置精度的计算器类"""
    def __init__(self, precision: int = 2):
        self.precision = precision
        logger.info(f"AdvancedCalculator 初始化,精度为 {self.precision}")

    def multiply(self, a, b):
        return a * b

2. 在 API 函数中调用

然后,在您的 API 函数中,通过 context.common 对象来调用这个公共函数模块。

# API 函数
from loguru import logger

async def handler(context, x: int = 10, y: int = 3):
    """
    一个调用公共函数的 API 函数示例。
    此示例假设存在一个名为 'math_utils' 的公共函数。
    """

    # 通过 context.common.math_utils 调用公共函数
    simple_sum = context.common.math_utils.add(x, y)
    logger.info(f"调用 'math_utils.add',结果: {simple_sum}")

    # 使用公共模块中的类
    Calculator = context.common.math_utils.AdvancedCalculator
    calc_instance = Calculator(precision=4)
    product = calc_instance.multiply(x, y)

    return {
        "code": 0,
        "msg": "计算成功",
        "data": {
            "simple_addition": simple_sum,
            "product": product
        }
    }

通过这种方式,您可以将复杂的业务逻辑拆分成多个可维护的公共模块,使您的 API 函数保持简洁和清晰。