Python基础——第九章 第三部分 闭包、递归、回调
发布日期:2021-05-08 21:02:47 浏览次数:22 分类:精选文章

本文共 880 字,大约阅读时间需要 2 分钟。

今天我在学习函数相关的概念,遇到了几个问题,需要仔细思考一下。

首先,问题一是:函数里面可以再定义函数,那这个内层函数在外面能否被调用?我记得在编程中,函数可以嵌套定义,但通常内层函数只能在外层函数的作用域内使用。比如说,外层函数返回内层函数的引用,那么外部可以通过这个引用来调用内层函数。这样的话,外层函数和内层函数就形成了闭包。闭包的作用是可以在外部保留内层函数对外层变量的引用,这对于数据隐蔽性和保护在某些情况下非常有用。

接下来是问题二:函数里面是否可以调用自身?这让我联想到递归函数。递归函数就是函数自身调用自身,这种情况下,函数需要有一个终止条件,否则会导致无限递归,导致栈溢出。比如,计算阶乘的递归函数,每次都会调用自己,但只有当n降到1时才停止,返回结果。

然后,我看到了关于闭包和递归的例子。闭包在函数内部定义了一个函数,并通过返回该函数的引用,让外部能够调用它。递归则是在函数内部调用自身,但必须有一个终止条件。这样可以避免无限循环的问题。

关于回调函数,我理解它是一个被传入到其他函数中的函数,供另一个函数调用。回调函数的调用通常由被传入函数的逻辑决定。比如,在事件驱动模型中,某些事件发生时会触发回调函数的执行。

接下来,我需要解决一个问题:定义一个函数,传入一个字典和一个元组,在字典的key值不变的情况下,将字典的value值和元组的值交换,返回交换后的字典和与元组。

我的思考是,如何在字典中找到对应的key,获取其value,然后找到元组的对应位置的值,交换它们。需要注意的是,字典的其他key的value不变,所以要确保只修改目标key对应的value。

在实现时,我可能会先遍历字典,找到需要修改的key,然后获取元组的对应索引,交换值。或者,可以使用zip函数来同时处理字典和元组的值,找到对应的索引进行修改。这可能需要一些循环和条件判断,确保只交换指定的键对应的值。

总结一下,解决这个问题需要明确哪个key对应哪个元组的值,交换它们的值,同时确保其他部分保持不变。这可能涉及到遍历结构,查找对应的索引,并进行交换操作。

上一篇:PowerBI基础——第一天 度量值、新建列及关系函数 多对一及一对多匹配
下一篇:Python基础——第九章 第二部分 函数作用域 全局变量global、局部变量nonlocal

发表评论

最新留言

路过按个爪印,很不错,赞一个!
[***.219.124.196]2025年03月27日 01时51分48秒