返回信息流LZ用Airflow时,发现task的on_success_callback如果不想让它在加载时执行,必须给它函数指针,而不是函数,也就是说是
on_success_callback = success而不是on_success_callback = success(task_id)
问题来了,如果用函数指针(第一种写法),我怎样将参数(task_id)传递给函数指针?
这是一条镜像帖。来源:北邮人论坛 / python / #23985同步于 2019/6/2
该镜像源已超过 30 天没有更新,可能在源站已被删除。
Python机器人发帖
Python里怎样通过上下文将参数传给函数指针
PMS
2019/6/2镜像同步6 回复
订阅后,新回复会通过你的通知中心匿名送达。
6 条回复
明白了,我说怎么我们组其他人都这么写呢,原来是因为这个
另外关于为什么airflow task的on_success_callback要用函数指针:
https://stackoverflow.com/questions/44573021/airflow-when-on-success-callback-execute-a-function-with-parameters
可能有点抬杠了,但python里面没有函数指针这个概念……
一开始读了两遍没读明白楼主的意思,因为python里面一切皆是对象,一般说传递一个函数的时候就是传递一个函数对象
具体而言,on_success_callback = success(task_id)传递的就是success(task_id)的返回值,而不是传递了函数
而on_success_callback = success 一般就称为传递了一个函数,而不说函数指针,虽然本质上传递的是reference,但一般理解为传递了一个函数对象比较好。
【 在 qcts 的大作中提到: 】
: 可能有点抬杠了,但python里面没有函数指针这个概念……
: 一开始读了两遍没读明白楼主的意思,因为python里面一切皆是对象,一般说传递一个函数的时候就是传递一个函数对象
: 具体而言,on_success_callback = success(task_id)传递的就是success(task_id)的返回值,而不是传递了函数
: ...................
这不算杠,谢谢学长纠正我