鱼C论坛

 找回密码
 立即注册
查看: 1845|回复: 6

[已解决]什么叫做一个函数作为另一个函数的参数

[复制链接]
发表于 2020-7-27 16:10:40 | 显示全部楼层 |阅读模式

马上注册,结交更多好友,享用更多功能^_^

您需要 登录 才可以下载或查看,没有账号?立即注册

x
什么是一个函数作为另一个函数的参数,请大神们打个简单点的代码,然后给我解释下( 手动送花)
最佳答案
2020-7-27 16:13:10
本帖最后由 Twilight6 于 2020-7-27 16:14 编辑



例子:
def temp():
    print('调用了 temp 函数')


def f(func):    # 这边设置一个参数
    print('调用了 f 函数')
    func()   # 加上括号表示调用这个传入的参数函数

f(temp)   # 这里传入了另一个函数

输出结果:
调用了 f 函数
调用了 temp 函数
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

发表于 2020-7-27 16:13:10 | 显示全部楼层    本楼为最佳答案   
本帖最后由 Twilight6 于 2020-7-27 16:14 编辑



例子:
def temp():
    print('调用了 temp 函数')


def f(func):    # 这边设置一个参数
    print('调用了 f 函数')
    func()   # 加上括号表示调用这个传入的参数函数

f(temp)   # 这里传入了另一个函数

输出结果:
调用了 f 函数
调用了 temp 函数
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2020-7-27 16:17:16 | 显示全部楼层
执行顺序是不是
先调用def f() ,然后 func=temp 。执行完f()后,返回结果是temp()。所以再执行temp()。
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2020-7-27 16:21:31 | 显示全部楼层
Congratulate 发表于 2020-7-27 16:17
执行顺序是不是
先调用def f() ,然后 func=temp 。执行完f()后,返回结果是temp()。所以再执行temp( ...



Ps:回复他人记得点击回复,不然别人看不见消息提醒哈~


是先传入参数,然后调用函数

先 func = temp ,然后参数准备就绪,调用 f 函数, f 函数打印一次,然后在运行到 func() 等价与调用了 temp()

而且这里没有设置 return ,所以没有返回哈,返回的都是 None


想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2020-7-27 16:21:33 | 显示全部楼层
参数一般情况下都是变量,但函数也是变量啊。
def main(func):
    if func():
        print("打印函数")


def print_func():
    return True


main(print_func)

例如以上:把print_func函数的返回结果给了main 函数,打印了内容。
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2020-7-27 16:57:53 | 显示全部楼层
Twilight6 发表于 2020-7-27 16:21
Ps:回复他人记得点击回复,不然别人看不见消息提醒哈~

刚刚忘点回复了,不好意思哈
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2020-7-27 17:10:30 | 显示全部楼层
heidern0612 发表于 2020-7-27 16:21
参数一般情况下都是变量,但函数也是变量啊。

你这个 if func(): 是什么意思。是 if ture 的意思么?
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

小黑屋|手机版|Archiver|鱼C工作室 ( 粤ICP备18085999号-1 | 粤公网安备 44051102000585号)

GMT+8, 2025-1-11 11:48

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

快速回复 返回顶部 返回列表