如何在python函数中指定传递的参数必须是函数

时间:2019-01-11 15:46:04

标签: python python-3.x function arguments type-hinting

我制作了一个以函数作为参数的函数。

如果我想指定一个函数接受一个整数,那很简单:

def fun(myInt:int=0):
    return myInt

但是当它需要一个函数时,我不能这样做:

def fun(myFun:function=print):
    myFun('whatever')

我同时打印了一个整数和一个函数的type()并得到了 <class 'int'> <class 'function'>

这两者之间有什么区别,这是做我想做的简单方法吗?

顺便说一句。我已经用过Google的同伴,找不到任何东西

1 个答案:

答案 0 :(得分:0)

在Python 3中:

from typing import Callable

def fun(myFun:Callable=print):
    myFun('whatever')

fun()
fun(print)
fun(type)