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

如何实现用####包裹函数、用#####分隔多函数的文本输出?

嘿,这个需求挺实用的,尤其是当你要区分不同函数的大段输出时,我来给你分享两种简洁的实现方式——核心思路是用包装逻辑把重复的标记代码抽离出来,不用挨个修改你的业务函数~

实现方案

一、用####包裹单个函数输出:装饰器/包装函数

不管你用什么语言,最优雅的方式是写一个包装函数(或装饰器),把原来的输出函数套进去,自动在执行前后添加####。这样不用修改每个函数的内部代码,复用性极强。

Python 示例(装饰器方式)

# 定义装饰器,负责添加####包裹
def wrap_with_double_hash(func):
    def wrapper(*args, **kwargs):
        print("####")
        # 执行原函数(原函数直接print输出)
        func(*args, **kwargs)
        print("####")
    return wrapper

# 给你的业务函数加上装饰器
@wrap_with_double_hash
def data_process_func():
    print("处理用户数据中...")
    print("已完成1000条数据清洗")
    print("输出统计结果:均值=123.4,中位数=118.9")

@wrap_with_double_hash
def report_generate_func():
    print("生成月度报告...")
    print("报告包含:用户留存率、转化漏斗分析")
    print("报告已保存到本地路径:./reports/monthly.pdf")

如果你的函数是返回字符串而不是直接print,装饰器可以稍作调整:

def wrap_with_double_hash(func):
    def wrapper(*args, **kwargs):
        output_content = func(*args, **kwargs)
        # 拼接####后打印
        print(f"####\n{output_content}\n####")
    return wrapper

@wrap_with_double_hash
def get_analysis_result():
    return """用户行为分析结果:
- 日均活跃用户:5000+
- 核心功能使用率:78%
- 用户流失率:12%"""

二、用#####作为函数输出的分隔线

这部分可以分两种场景:

1. 手动调用时添加分隔线

如果是逐个调用函数,直接在函数调用之间插入print("#####")即可:

data_process_func()
print("#####")
report_generate_func()
print("#####")
get_analysis_result()

2. 批量执行函数时自动添加分隔线

如果有多个函数需要按顺序执行,可以写一个批量执行函数,自动在函数之间插入分隔线,避免重复写print:

def run_funcs_with_separator(func_list):
    for idx, func in enumerate(func_list):
        # 不是第一个函数的话,先打印分隔线
        if idx != 0:
            print("#####")
        func()

# 把需要执行的函数放进列表,自动执行加分隔
run_funcs_with_separator([data_process_func, report_generate_func, get_analysis_result])

其他语言的思路(以JavaScript为例)

核心逻辑完全一致,用包装函数实现:

// 包装函数,添加####包裹
function wrapWithDoubleHash(func) {
    return function(...args) {
        console.log("####");
        func(...args);
        console.log("####");
    };
}

// 业务函数
const processData = wrapWithDoubleHash(() => {
    console.log("处理数据中...");
    console.log("数据处理完成");
});

const generateReport = wrapWithDoubleHash(() => {
    console.log("生成报告中...");
    console.log("报告生成完成");
});

// 调用加分隔线
processData();
console.log("#####");
generateReport();

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.19 09:43:45