
python如何判断函数类型数据类型
用户关注问题
如何检测一个变量是否为函数?
在Python中,怎样才能判断某个变量是否是一个函数类型?有没有简单直接的方法?
使用内置的callable()函数检测函数类型
可以利用Python内置的callable()函数判断一个变量是否可调用(包括函数、方法、类等)。如果返回True,说明此变量是一个函数或可调用对象。例如:
if callable(var):
print('这是一个函数或可调用对象')
else:
print('这不是函数')
如何区分普通函数和内置函数?
Python中函数有普通函数和内置函数两种类型,有没有办法区分它们的类型?
利用type()函数和内置模块类型区分函数类型
可以通过type()函数判断函数的具体类型。普通函数的类型是function,而内置函数的类型通常是builtin_function_or_method。例如:
import types
def foo():
pass
print(type(foo) == types.FunctionType) # True
print(type(len) == types.BuiltinFunctionType) # True
怎么判断一个对象是否是lambda函数?
Python中,如何判断一个函数对象是不是由lambda表达式创建的函数?
利用函数的__name__属性判断lambda函数
lambda函数的__name__属性通常是'<lambda>',可以通过检查这个属性来判断。例如:
f = lambda x: x+1
if hasattr(f, '__name__') and f.__name__ == '<lambda>':
print('这是一个lambda函数')
else:
print('这不是lambda函数')