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

Python高阶函数场景下如何向外层函数的内嵌函数传参?

问题解决方法

你当前代码的问题是makeTriangle末尾没有返回内层定义的triangle函数,只要修改返回值即可实现需求:Python的闭包特性会自动让内层triangle函数持有外层传入的sign参数,这就是高阶函数的典型实现逻辑。

修改后的完整代码

def makeTriangle(sign):
    def triangle(n):
        result = ''
        for i in range(1, n+1):
            result += sign * i + '\n'
        return result
    # 直接返回内层函数对象,不需要加括号调用
    return triangle

使用示例

# 第一步传入符号,得到对应符号的三角形生成函数
hash_triangle = makeTriangle('#')
# 第二步传入层数,直接生成对应三角形
print(hash_triangle(4))

运行输出:

实现逻辑说明

  • 这里的makeTriangle就是高阶函数,它接收符号参数后,会返回一个专用的三角形生成函数
  • 返回的triangle函数会自动保留外层传入的sign参数,后续调用时不需要重复传入符号,仅需传入层数即可

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.02 06:48:03