开发者社区> 问答> 正文

type(my_function)比较类型

我有一个函数,应该根据传递给它的参数类型进行操作,简单说明一下:

def operate_according_to_type(argument_passed): 
    if type(argument_passed) == str:
        do string stuff
    elif type(argument_passed) == dict:
        do dict stuff
    elif type(argument_passed) == function:
        argument_passed()

def my_function(): pass

operate_according_to_type("Hello world")
operate_according_to_type({"foo": "bar"})
operate_according_to_type(my_function)

现在,尽管type(“ Hello world”)type({“ foo”:“ bar”})type(my_function)分别返回<class'str'>>,<class'dict '><class'function'>,我似乎无法像str一样与function`进行比较,甚至没有“保留”这个词。

我应该如何进行?我应该继续进行,还是仅仅是危险?

问题来源:stackoverflow

展开
收起
is大龙 2020-03-24 12:30:15 404 0
1 条回答
写回答
取消 提交回答
  • 您可以使用内置函数callable来检查对象是否可调用:

    ...
    elif callable(argument_passed):
        argument_passed()
    

    更多详细信息可以在这里找到。

    回答来源:stackoverflow

    2020-03-24 12:30:21
    赞同 展开评论 打赏
问答分类:
问答标签:
问答地址:
问答排行榜
最热
最新

相关电子书

更多
AutoAlerts-From Data to Action 立即下载
低代码开发师(初级)实战教程 立即下载
阿里巴巴DevOps 最佳实践手册 立即下载