what is the functions type in python3
本问题已经有最佳答案,请猛点这里访问。
在python 3中,所有东西都是obj,函数也是。函数是一流的公民,这意味着我们可以像其他变量一样。
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 | >>> class x: pass >>> >>> isinstance(x,type) True >>> type(x) <class 'type'> >>> >>> x=12 >>> isinstance(x,int) True >>> type(x) <class 'int'> >>> |
但是功能不同!:
1 2 3 4 5 6 7 8 9 10 11 | >>> def x(): pass >>> type(x) <class 'function'> >>> isinstance(x,function) Traceback (most recent call last): File"<pyshell#56>", line 1, in <module> isinstance(x,function) NameError: name 'function' is not defined >>> |
为什么会出错?什么是python函数类型?
您可以使用
1 2 3 4 5 6 | >>> def x(): ... pass ... >>> import types >>> isinstance(x, types.FunctionType) True |
@对于函数的类型,错误的答案是正确的。
但是,如果您要查找的是检查是否可以使用
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 | >>> def f(): ... pass ... >>> class CA: ... pass ... >>> callable(f) True >>> callable(CA) True >>> callable(int) True >>> a = 1 >>> callable(a) False |