¥
立即购买

Python函数签名生成器

0 浏览
0 试用
0 购买
Dec 10, 2025更新

本提示词专为Python开发场景设计,能够根据具体功能需求生成准确、规范的Python函数签名。通过分析函数用途、参数需求和返回值类型,提供符合Python编码规范的专业函数定义,包括参数类型注解、返回值类型说明和文档字符串框架,帮助开发者快速构建函数原型,提高代码质量和开发效率。适用于函数设计、API开发、代码重构等多种Python编程场景。

函数签名

from typing import Any, Sequence, Mapping, Optional, List, Literal, TypedDict
from datetime import datetime
from decimal import Decimal


class AggregateRow(TypedDict):
    key: str
    order_count: int
    revenue: Decimal
    avg_order_value: Decimal
    refund_ratio: float


class CurrencyConversionError(Exception):
    """Raised when currency conversion to a single base currency cannot be completed."""


class DataValidationError(ValueError):
    """Raised when input orders are missing required fields or contain invalid values."""


def aggregate_orders(
    orders: Sequence[Mapping[str, Any]],
    start: Optional[datetime] = None,
    end: Optional[datetime] = None,
    *,
    group_by: Literal["user", "category", "channel", "date"] = "date",
    include_refunded: bool = False,
    rounding: int = 2,
    timezone: str = "UTC",
) -> List[AggregateRow]:
    """
    Aggregate e-commerce orders by a specified dimension to compute core business metrics.

    See full docstring template below for details.
    """
    ...

参数说明

  • orders: Sequence[Mapping[str, Any]] - 订单列表。每个元素需包含字段:id、user_id、items(list[dict{sku_id, qty, price[, category]}])、paid_at(datetime)、channel('web'|'app'|'store')、refunded(bool)、currency(str)。
  • start: Optional[datetime] - 统计开始时间(包含)。为None时不限制下界。
  • end: Optional[datetime] - 统计结束时间(包含)。为None时不限制上界。需满足 start <= end(以timezone对齐后判断)。
  • group_by: Literal['user','category','channel','date'] - 聚合维度,默认'date'。
  • include_refunded: bool - 是否将退款订单计入订单数与销售额,默认False。
  • rounding: int - 货币金额的小数位数,范围[0, 4],默认2。
  • timezone: str - 时区名称(IANA/Olson,例如'UTC'、'Asia/Shanghai'),用于时间范围过滤与按日期分组,默认'UTC'。

返回值说明

  • List[AggregateRow] - 聚合结果列表,按 key 升序排列。末尾附加一行总计(summary),其 key 为 'summary',包含跨所有分组的汇总指标。若无匹配订单,返回仅包含 summary 的一行或空列表的实现需在文档中约定(推荐始终返回 summary 行)。

文档字符串框架

"""
对电商订单进行按维度聚合统计,计算订单数、销售额、客单价、退款占比等指标。
支持按用户、品类、渠道或日期分组,处理退款、跨币种与时区对齐等业务细节。
结果按 key 升序返回,并在末尾附加总计(key='summary')行。

参数
----------
orders : Sequence[Mapping[str, Any]]
    订单列表。每个订单应包含如下字段:
    - id: str|int,订单唯一标识
    - user_id: str|int,用户标识
    - items: list[dict],商品明细。每项需包含:
        - sku_id: str|int
        - qty: int
        - price: Decimal|str|float(实现中应规范为Decimal)
        - category: Optional[str](当 group_by='category' 时需可用;若缺失,需有外部品类映射或抛出异常)
    - paid_at: datetime,支付完成时间
    - channel: Literal['web','app','store']
    - refunded: bool,是否已退款(全额或被视为退款)
    - currency: str,币种代码(如'USD'、'CNY')
start : Optional[datetime], default None
    统计开始时间(包含)。为 None 时不限制下界。若为“天”维度聚合,基于 timezone 进行日期边界对齐。
end : Optional[datetime], default None
    统计结束时间(包含)。为 None 时不限制上界。要求在时区对齐后满足 start <= end。
group_by : {'user','category','channel','date'}, default 'date'
    聚合维度:
    - 'user'    -> key 为用户ID的字符串表示
    - 'category'-> key 为品类名称(需可解析)
    - 'channel' -> key ∈ {'web','app','store'}
    - 'date'    -> key 为按 timezone 对齐的 ISO 日期字符串(YYYY-MM-DD)
include_refunded : bool, default False
    是否将退款订单计入 order_count 与 revenue。如果为 False,则退款订单不计入上述两项。
    refund_ratio 始终基于与 order_count 一致的订单集合计算:refund_ratio = refunded_count / max(order_count, 1)。
rounding : int, default 2
    结果中金额字段(revenue、avg_order_value)的保留小数位数,取值范围 [0, 4]。
timezone : str, default 'UTC'
    时区名称(IANA/Olson,例如 'UTC', 'Asia/Shanghai')。用于:
    - 将 paid_at 归一化用于时间范围过滤
    - 在 group_by='date' 时按该时区计算归属日期

返回
----------
List[AggregateRow]
    聚合结果列表,包含以下字段:
    - key: str,分组键
    - order_count: int,订单数量(是否包含退款取决于 include_refunded)
    - revenue: Decimal,销售额(按单一基准币种归一化且四舍五入至指定小数位)
    - avg_order_value: Decimal,客单价 = revenue / max(order_count, 1)
    - refund_ratio: float,退款订单比例,范围 [0.0, 1.0]
    列表按 key 升序排列。最后一行为总计汇总(key='summary'),汇总所有分组的指标。

计算口径与业务细节
----------
- 时间范围:对齐至 timezone 后进行 [start, end] 闭区间过滤;若 start 或 end 为 naive datetime,视为该 timezone 下的本地时间。
- 币种:当存在多币种订单时,应转换到单一基准币种(实现需提供汇率来源)。若无法转换,抛出 CurrencyConversionError。
- 退款:当 include_refunded=False 时,退款订单从 order_count 与 revenue 中排除;refund_ratio 仍以相同集合为分母计算。
- 品类分组:要求 items 中包含 'category' 或存在可用的 SKU->品类映射;否则抛出 DataValidationError。
- 排序:结果按 key 升序;'date' 维度使用 YYYY-MM-DD 字符串进行字典序排序,与时间顺序一致。

异常
----------
ValueError
    - start > end(在时区对齐后)
    - 参数 group_by 或 rounding 取值非法(rounding 需在 [0, 4])
DataValidationError
    - 订单缺失必需字段,或在 group_by='category' 时无法解析品类
CurrencyConversionError
    - 存在多币种但无法完成转换
RuntimeError 或底层时区解析异常
    - timezone 无法识别或加载

备注
----------
- 建议对金额使用 Decimal 进行精确计算,并在返回前按 rounding 位四舍五入。
- 空结果时,推荐仍返回仅包含 summary 行(各指标为0)。

示例
----------
# 示例仅为占位,具体实现与调用示例留待集成时补充。
"""

函数签名

from typing import Callable, List, Literal, Optional, Sequence, TypedDict


class SimilarityResult(TypedDict):
    a: int
    b: int
    score: float
    method: str
    normalized: bool


def pairwise_text_similarity(
    texts: Sequence[str],
    *,
    method: Literal["tfidf", "bert", "sbert"] = "tfidf",
    top_k: int = 5,
    normalize: bool = True,
    threshold: Optional[float] = None,
    tokenizer: Optional[Callable[[str], List[str]]] = None,
    batch_size: int = 32,
    device: Optional[str] = None,
) -> List[SimilarityResult]:
    """
    Compute pairwise similarity within a collection of texts for search recall and
    content deduplication. Supports TF-IDF or (S)BERT embeddings, optional
    preprocessing via tokenizer, threshold filtering, and global Top-K output.
    Results are sorted by score in descending order.

    This API targets pairwise similarity among all unique text indices in `texts`.
    For single-query scenarios, a common pattern is to pass `[query] + corpus`
    and post-filter results where `a == 0` to obtain Top-K neighbors of the query.
    """
    ...

参数说明

  • texts: Sequence[str] - 文本集合,长度需≥2;将对其内部所有不重复索引对进行相似度计算
  • method: Literal['tfidf','bert','sbert'] - 相似度表示方法,默认 'tfidf'
  • top_k: int - 返回的全局Top-K相似对数量(按score降序),范围[1, 50],默认5
  • normalize: bool - 是否对向量进行归一化(如L2归一化以使用余弦相似度),默认True
  • threshold: Optional[float] - 分数阈值,范围[0, 1];若提供,仅返回score≥threshold的结果
  • tokenizer: Optional[Callable[[str], List[str]]] - 预处理/分词函数,接收字符串返回token列表;常用于TF-IDF
  • batch_size: int - 批处理大小,默认32;主要用于BERT/SBERT嵌入生成的批量推理
  • device: Optional[str] - 设备标识,如'cpu'或'cuda'(或实现支持的其他形式);主要用于BERT/SBERT

返回值说明

  • List[SimilarityResult] - 相似对列表,按score降序排序;每个元素包含:
    • a: int - 文本A的索引(基于输入texts)
    • b: int - 文本B的索引(a < b)
    • score: float - 相似度分数
    • method: str - 实际使用的方法('tfidf'|'bert'|'sbert')
    • normalized: bool - 是否使用了向量归一化

若指定threshold,仅返回score≥threshold的结果。

文档字符串框架

"""
计算文本集合内的两两相似度,用于搜索召回与内容去重。
支持TF-IDF或BERT/SBERT嵌入,提供可选的预处理、阈值过滤与全局Top-K输出,
结果按分数降序返回。

参数
----------
texts : Sequence[str]
    文本集合,长度需≥2。将对其内部所有不重复索引对(i, j), i < j进行相似度计算。
method : Literal['tfidf','bert','sbert'], optional
    相似度表示方法,默认 'tfidf'。'bert' 与 'sbert' 通常依赖深度模型生成句向量。
top_k : int, optional
    全局Top-K相似对数量(按score降序),范围[1, 50],默认5。若候选少于K,则返回所有候选。
normalize : bool, optional
    是否对向量进行归一化(如L2归一化以使用余弦相似度),默认True。
threshold : Optional[float], optional
    分数阈值,范围[0, 1]。若提供,仅返回score≥threshold的结果;若未提供,则不进行阈值裁剪。
tokenizer : Optional[Callable[[str], List[str]]], optional
    文本预处理/分词函数;当使用TF-IDF时常用以自定义分词与清洗逻辑。
batch_size : int, optional
    批处理大小,默认32;主要用于'bert'/'sbert'嵌入生成阶段的批量推理。
device : Optional[str], optional
    计算设备,如'cpu'或'cuda'(实现可支持诸如'cuda:0'等更具体标识);主要用于'bert'/'sbert'。

返回
-------
List[SimilarityResult]
    相似对结果列表,按score降序排序。每个元素为TypedDict:
    - a (int): 文本A的索引(基于输入texts)
    - b (int): 文本B的索引(a < b)
    - score (float): 相似度分数
    - method (str): 实际使用的方法('tfidf'|'bert'|'sbert')
    - normalized (bool): 是否进行了向量归一化
    若指定threshold,仅返回score≥threshold的结果。

异常
-------
ValueError
    - texts长度<2
    - top_k不在[1, 50]范围内
    - threshold不为None且不在[0, 1]范围内
    - batch_size < 1
TypeError
    - tokenizer的签名不符合 Callable[[str], List[str]] 要求
RuntimeError
    - 所选方法所需的运行时依赖/设备不可用(例如深度模型或设备不可用)
NotImplementedError
    - 方法或特性在当前实现中未提供

说明
-------
- 本函数对输入集合进行全局两两相似度计算。Top-K指全局最相似的K对,而非按每个文本分别的Top-K。
- 单次查询场景可通过传入 [query] + corpus 的方式,事后筛选 a == 0 的结果以获取查询的Top-K相似文本。
- 复杂度:向量生成通常为 O(N),两两相似度计算通常为 O(N^2);大规模数据需注意内存与时间开销。
- normalize为True时通常等价于使用余弦相似度;为False时可能使用内积或实现定义的度量。

示例
-------
# 用法示意(实现细节根据具体工程而定)
# results = pairwise_text_similarity(
#     texts=["foo", "bar", "baz", "..."],
#     method="tfidf",
#     top_k=10,
#     normalize=True,
#     threshold=0.3,
#     tokenizer=None,
#     batch_size=64,
#     device="cpu",
# )
"""

函数签名

from __future__ import annotations

from pathlib import Path
from typing import (
    Any,
    Callable,
    Iterable,
    Literal,
    Mapping,
    Optional,
    Protocol,
    Sequence,
    Type,
    TypeVar,
    Union,
    runtime_checkable,
)


@runtime_checkable
class ConfigProtocol(Protocol):
    """
    A strongly-typed configuration object protocol that:
    - Supports dict-style access (Mapping[str, Any]),
    - Supports attribute-style access via dot notation,
    - Exposes source provenance and validation logs.
    """

    # Mapping-like
    def __getitem__(self, key: str) -> Any: ...
    def __iter__(self) -> Iterable[str]: ...
    def __len__(self) -> int: ...

    # Dot-notation access
    def __getattr__(self, name: str) -> Any: ...

    # Provenance and validation info
    @property
    def sources(self) -> Sequence[str]: ...
    @property
    def validation_log(self) -> Sequence[str]: ...


TConfig = TypeVar("TConfig", bound=ConfigProtocol)


def load_config(
    path: Union[str, Path],
    *,
    env_prefix: str = "",
    overrides: Optional[Mapping[str, Any]] = None,
    schema: Optional[Union[Type[TConfig], Callable[[Mapping[str, Any]], TConfig]]] = None,
    required_keys: Sequence[str] = (),
    strict: bool = True,
    secrets: Sequence[str] = (),
    encoding: str = "utf-8",
    on_missing: Literal["error", "ignore", "create"] = "error",
    merge_strategy: Literal["deep", "replace"] = "deep",
) -> TConfig:
    """
    Load configuration by merging file content, environment variables, and explicit overrides,
    validate against a given schema, and return a strongly-typed configuration object.

    The effective precedence is:
        base file -> environment variables (with env_prefix) -> explicit overrides

    Behavior highlights:
    - Supports .yaml/.yml/.json files.
    - Supports layered deep merge (default) or full replacement.
    - Supports required key checks and missing-key strategies.
    - Filters unknown keys when strict=True.
    - Returns a config supporting both dict- and dot-notation access.
    - Exposes sources provenance (sources) and validation logs (validation_log).
    - Supports masking sensitive fields for safe printing via "secrets".
    - Enables cross-environment switching via env_prefix.
    """
    ...

参数说明

  • path: Union[str, Path] - 配置文件路径,支持.yaml/.yml/.json
  • env_prefix: str - 用于匹配环境变量前缀(正则约束:^[A-Z_]+$),默认''表示不使用前缀过滤
  • overrides: Optional[Mapping[str, Any]] - 显式覆盖项,优先级最高
  • schema: Optional[Union[Type[TConfig], Callable[[Mapping[str, Any]], TConfig]]] - 校验与构造强类型配置对象的schema;可为类型(如dataclass/pydantic model)或函数(输入原始映射,返回TConfig)
  • required_keys: Sequence[str] - 要求必须存在的键(支持点式路径的约定需由实现决定)
  • strict: bool - 严格模式;True时过滤未知键,仅保留schema中声明的键
  • secrets: Sequence[str] - 需要脱敏打印的敏感字段名集合(包含嵌套键的约定需由实现决定)
  • encoding: str - 读取文本编码,默认'utf-8'
  • on_missing: Literal['error','ignore','create'] - 缺失键策略:报错/忽略/创建(以默认值或空容器)
  • merge_strategy: Literal['deep','replace'] - 合并策略:deep为递归合并,replace为整体替换

返回值说明

  • TConfig - 实现ConfigProtocol的强类型配置对象,支持点号与dict两种访问方式,包含以下能力:
    • sources: Sequence[str] - 实际使用的来源路径/标识列表(例如文件路径、"ENV"、"OVERRIDES")
    • validation_log: Sequence[str] - 校验与规范化步骤的日志消息

文档字符串框架

"""
从文件、环境变量与显式覆盖项合并加载配置,按给定schema校验并返回强类型配置对象。

功能概述:
- 支持.yaml/.yml/.json文件格式。
- 合并优先级:文件 < 环境变量(由env_prefix限定) < overrides。
- 支持层级(deep)或替换(replace)合并策略。
- 严格模式(strict=True)下过滤未知键,仅保留schema声明的字段。
- 支持缺失键策略(on_missing):error/ignore/create。
- 支持敏感字段脱敏打印(secrets),便于日志与调试。
- 支持通过env_prefix实现跨环境切换。

参数:
- path (Union[str, Path]): 配置文件路径,支持.yaml/.yml/.json。
- env_prefix (str): 环境变量前缀(必须匹配^[A-Z_]+$,空字符串表示不使用前缀),用于选择和映射ENV键。
- overrides (Optional[Mapping[str, Any]]): 最高优先级的覆盖项。
- schema (Optional[Union[Type[TConfig], Callable[[Mapping[str, Any]], TConfig]]]):
    - 若为类型(如dataclass/pydantic/BaseModel),则用以实例化强类型对象;
    - 若为函数,则以合并后的原始映射作为输入,返回TConfig实例。
- required_keys (Sequence[str]): 要求存在的键集合。缺失时依据on_missing处理。
- strict (bool): 严格模式控制。True时过滤未知字段;False时保留额外字段。
- secrets (Sequence[str]): 需要脱敏打印的字段名集合;实现应在repr/日志输出时进行遮盖。
- encoding (str): 文件读取编码,默认'utf-8'。
- on_missing (Literal['error','ignore','create']): 缺失键策略:
    - 'error': 发现缺失键时抛出异常;
    - 'ignore': 保留缺失状态,不强制创建;
    - 'create': 为缺失键创建默认值(具体默认由实现与schema共同决定)。
- merge_strategy (Literal['deep','replace']):
    - 'deep': 对嵌套dict执行递归合并;
    - 'replace': 上层来源直接替换下层同名键的整体值。

返回:
- TConfig: 实现ConfigProtocol的强类型配置对象,支持dict与点号两种访问方式,
  并提供:
  - sources (Sequence[str]): 配置实际来源列表(如文件路径、"ENV"、"OVERRIDES")。
  - validation_log (Sequence[str]): 校验与规范化步骤的日志记录。

可能抛出:
- FileNotFoundError: 指定的配置文件不存在(且on_missing策略/实现不允许创建)。
- ValueError: env_prefix不匹配正则或配置值不满足schema基本约束。
- KeyError: 当on_missing='error'且存在缺失必需键时。
- TypeError: schema返回类型与TConfig不匹配或类型不合法。
- json.JSONDecodeError / 解析异常: 当JSON/YAML内容无法被正常解析。
- OSError / IOError: 文件读取或编码错误。

备注:
- 若提供schema,返回对象类型与字段将随schema具体定义而具备更精确的类型提示(TConfig)。
- 日志与脱敏行为的具体格式与实现细节由调用方或库内部实现决定。
"""

示例详情

解决的问题

将“功能想法”在1分钟内转化为可评审、可落地的Python函数签名与文档骨架,帮助个人与团队:

  • 快速把业务需求沉淀为清晰的函数定义
  • 统一命名、参数与返回的表达方式,减少沟通与返工
  • 明确异常与边界,降低隐性风险与线上故障
  • 直接产出可粘贴到代码与说明文档的成品内容
  • 覆盖新功能、重构、接口设计、库开发等多场景
  • 提升代码评审通过率与交付速度,促进从试用到付费的确定性价值感

适用用户

Python后端工程师

在设计服务方法与内部工具时,快速产出带类型注解与文档的函数定义;统一命名与默认值;减少评审往返,加速联调与上线。

数据工程师

为数据清洗、特征处理、数据校验等场景生成规范函数签名;明确输入输出与异常约束;保证数据流程可读、易复用。

测试工程师

基于需求快速形成待测函数的标准签名与说明;锁定输入边界与预期结果;更高效地编写用例与回归脚本。

特征总结

根据需求一键生成规范函数签名,附类型注解与返回说明,开箱可用。
自动设计必要与可选参数,命名清晰,避免歧义与后期返工,降低协作成本。
明确返回结构与异常边界,一次说明白,减少调试时间与沟通反复成本。
自带文档字符串框架,参数与返回说明齐全,代码评审与交接更顺滑。
支持不同复杂度场景,从简单工具到核心模块,均可一键成型可扩展。
贴合团队编码规范与风格,统一输出格式,减少风格差异与评审争议。
适用于新功能设计、旧代码重构与接口对齐,快速理清职责、边界与依赖。
通过结构化提问引导思考,避免遗漏关键参数与约束,提升一次成稿率。
可复用为团队模板,按需调整占位字段,批量生成统一风格函数声明。

如何使用购买的提示词模板

1. 直接在外部 Chat 应用中使用

将模板生成的提示词复制粘贴到您常用的 Chat 应用(如 ChatGPT、Claude 等),即可直接对话使用,无需额外开发。适合个人快速体验和轻量使用场景。

2. 发布为 API 接口调用

把提示词模板转化为 API,您的程序可任意修改模板参数,通过接口直接调用,轻松实现自动化与批量处理。适合开发者集成与业务系统嵌入。

3. 在 MCP Client 中配置使用

在 MCP client 中配置对应的 server 地址,让您的 AI 应用自动调用提示词模板。适合高级用户和团队协作,让提示词在不同 AI 工具间无缝衔接。

AI 提示词价格
¥20.00元
先用后买,用好了再付款,超安全!

您购买后可以获得什么

获得完整提示词模板
- 共 608 tokens
- 4 个可调节参数
{ 功能描述 } { 参数需求 } { 返回值要求 } { 复杂度级别 }
获得社区贡献内容的使用权
- 精选社区优质案例,助您快速上手提示词
使用提示词兑换券,低至 ¥ 9.9
了解兑换券 →
限时半价

不要错过!

半价获取高级提示词-优惠即将到期

17
:
23
小时
:
59
分钟
:
59