You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何为pprint创建固定sort_dicts=False参数的函数别名

固定pprint默认sort_dicts=False的实现方法

你之前的写法不对是因为:newpp = pprint(…, sort_dicts=False)是直接调用执行pprint,会立刻触发打印,返回值是None,根本没法当可重复调用的函数用。

常用的实现方式有两种:

方案1:用标准库functools.partial(最省事)

functools.partial就是专门给函数固定部分参数、生成新的偏函数的工具,写起来非常简洁:

from pprint import pprint
from functools import partial

newpp = partial(pprint, sort_dicts=False)

生成的newpp和原生pprint用法完全没区别:

  • 默认会保留字典的原始插入顺序打印,不会自动按键排序
  • 原生pprint支持的所有其他参数(比如缩进indent、行宽width、输出流stream等)都能正常传
  • 要是临时需要开排序,手动传sort_dicts=True就能覆盖默认的固定值

方案2:自己写包装函数(不用额外导包、更灵活)

要是不想多导一个模块,或者后续还想加自定义打印逻辑,直接写一层包装函数就行:

from pprint import pprint

def newpp(*args, **kwargs):
    # 给sort_dicts设默认值False,调用时手动传的参数优先级更高
    kwargs.setdefault("sort_dicts", False)
    return pprint(*args, **kwargs)

这个写法效果和partial完全一致,后面要加其他固定参数、或者打印前后加自定义逻辑都很方便。

注:你之前用的thing = pprint只是给原函数起了个直接别名,本质上还是同一个函数,改不了原函数的默认参数,所以满足不了固定参数的需求。

内容的提问来源于stack exchange,提问作者Manngo

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.28 05:00:57