为何将Python函数作为参数传入时无需为其传参?
问题解答
- 函数是Python中的一等对象:在Python里,函数本身可以作为参数直接传递给另一个函数,不需要先调用它。这里
Example(other_function)是把other_function这个函数对象传给Example,而不是调用other_function并传递它的返回值。 - 传递函数≠调用函数:当你写
other_function时,指的是函数本身;只有加上括号other_function(flags)才是调用这个函数,需要传入flags参数。当前场景下,Example需要的是一个函数作为参数,所以直接传函数名就行。 - 补充说明:你提供的
Example函数虽然接收了func参数,但内部定义的Example类并没有使用这个func。如果后续要用到other_function,那才会在合适的地方调用它并传入flags参数,比如在类的某个方法里执行func(flags)。
内容的提问来源于stack exchange,提问作者user1551817
相关产品推荐
相关产品推荐

