Loading [MathJax]/jax/output/CommonHTML/config.js
首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >如何检测一个python变量是否是一个函数?

如何检测一个python变量是否是一个函数?

提问于 2017-12-13 03:03:28
回答 2关注 0查看 1.1K

有一个变量,x想知道它是否指向一个函数。

本来希望能做到这样的事情:

代码语言:txt
AI代码解释
复制
>>> isinstance(x, function)

但是报错为:

代码语言:txt
AI代码解释
复制
Traceback (most recent call last):
代码语言:txt
AI代码解释
复制
  File ""<stdin>"", line 1, in ?
代码语言:txt
AI代码解释
复制
NameError: name 'function' is not defined
代码语言:txt
复制
代码语言:txt
复制
代码语言:txt
AI代码解释
复制
>>> type(x)
代码语言:txt
AI代码解释
复制
<type 'function'>

回答 2

死者是小智

发布于 2017-12-13 06:14:51

内置命名空间中没有构造函数的内建类型(如函数,生成器,方法)在types模块中。您可以types.FunctionType在isinstance调用中使用。

代码语言:txt
AI代码解释
复制
In [1]: import types
代码语言:txt
AI代码解释
复制
In [2]: types.FunctionType
代码语言:txt
AI代码解释
复制
Out[2]: <type 'function'>
代码语言:txt
AI代码解释
复制
In [3]: def f(): pass
代码语言:txt
AI代码解释
复制
   ...:
代码语言:txt
AI代码解释
复制
In [4]: isinstance(f, types.FunctionType)
代码语言:txt
AI代码解释
复制
Out[4]: True
代码语言:txt
AI代码解释
复制
In [5]: isinstance(lambda x : None, types.FunctionType)
代码语言:txt
AI代码解释
复制
Out[5]: True

Ne_biubiubiu

发布于 2017-12-13 06:14:36

如果是Python 2.x或Python 3.2+,那么也可以使用callable()。它曾经被弃用,但现在不赞成,所以你可以再次使用它。你可以阅读这里的讨论:http : //bugs.python.org/issue10518。你可以这样做:

callable(obj)

如果这是针对Python 3.x,但在3.2之前,请检查该对象是否具有__call__属性。你可以这样做:

hasattr(obj, '__call__')

经常提出的types.FunctionTypes方法是不正确的,因为它没有涵盖你想要通过的许多情况,就像内置的方法:

>>> isinstance(open, types.FunctionType)

False

>>> callable(open)

True

检查鸭型物品的性能的正确方法是询问他们是否嘎嘎,而不是看他们是否适合鸭子大小的容器。types.FunctionType除非您对功能是什么有一个非常具体的想法,否则不要使用。

和开发者交流更多问题细节吧,去 写回答
相关文章
javascript判断一个变量是否是数字
其实判断的是有两种需求的,一种是数字或者数字字符串,一种是数值类型,下面分别做一下介绍。
IT工作者
2021/12/28
1.9K0
Python判断一个变量是否存在
但是也可以通过调用系统的内置函数来判断一个变量名是否已经被定义了。有3个内置函数都可以实现。
py3study
2020/01/10
7.6K0
Python 检测成员函数、成员变量是否存在的方法
AttributeError: A instance has no attribute 'fun2'
用户9127725
2022/08/08
3K0
JS篇(002)-JavaScript 中如何检测一个变量是一个 String 类型?
答案:三种方法(typeof、constructor、Object.prototype.toString.call())
齐丶先丶森
2022/05/12
9850
如何检测一个元素是否在 vector 中
可以使用头文件 <algorithm> 里的方法 std::find, #include <algorithm> #include <vector> vector<int> vec; if (std::find(vec.begin(), vec.end(), item) != vec.end()) do_this(); else do_that();
ClearSeve
2022/02/10
2.1K0
企业面试题: JavaScript中如何检测到一个变量是String类型,请写出函数实现
如果对象是 JavaScript Array 或 JavaScript Date ,我们就无法通过 typeof 来判断他们的类型,因为都是 返回 object。
舒克
2019/08/09
9290
如何知道一个变量的分布是否为高斯分布?
“你的输入变量/特征必须是高斯分布的”是一些机器学习模型(特别是线性模型)的要求。但我怎么知道变量的分布是高斯分布呢。本文重点介绍了保证变量分布为高斯分布的几种方法。
deephub
2021/03/10
1.8K0
如何知道一个变量的分布是否为高斯分布?
PHP 检测变量是否为空
注意:字符串"0.0"、字符串"00"、包括一个空格字符的字符串" "、字符串"false" 、整型 -1 都不为 false:
德顺
2019/11/13
7.6K0
一个变量在内存中是如何存储的
我们自学习一门高级语言时,都要了解数据成分,可你们知道在高级语言中数据都是如何在内存中存储的吗?今天我就来介绍一下。
小明爱学习
2020/05/12
2.9K0
Python判断是否json是否包含一个
jsonObject 是个json if (key in jsonObject) : print '有' else:     print '没有'
py3study
2020/01/09
2.7K0
如何判断一个数据分布是否是正太分布?
在数据分析过程中,得到一组数据,在分析之前,通常需要判断数据是否符合正态分布与否,再决定下一步分析方法。那么,如何判断数据是否属于正太分布呢?
小末快跑
2020/05/26
1.9K0
如何判断一个数据分布是否是正太分布?
判断一个对象是否是空
//判断一个对象是否是空 function isRealObject(obj){ if(typeof obj ==='object'){ for(var name in obj){ if(obj.hasOwnProperty(name)){   return true; } } } return false;  }; //多图上传获取路径 var arr = []; for(var
用户4973967
2019/12/16
5790
检测一个int n是否是k的整数次幂的通用方法
1.如果k是质数,那么先求出int范围内能被表示的最大的k的x次方——max,然后判断max%n==0。 例如判断一个数n是否是3的指数次幂: int max; void getMax() { int max = 1; while(true) { if(max*3/3==max) max *= 3; else return; } bool pow3(int n) { if(max==0) getMax(); return (n>0
kalifa_lau
2018/04/28
1.3K0
python如何判断一个目录下是否存在某个文件?
转载https://www.cnblogs.com/daiguoxi/p/13806385.html python如何判断一个目录下是否存在某个文件? 1.使用os模块 1 2 3 4 5 import os os.path.exists(test_file.txt) #True os.path.exists(no_exist_file.txt) #False 2.使用Try命令 1 2 3 4 5 try:   f =open(test_file.txt)   f.close() except IOEr
Lokinli
2023/03/09
9910
Python 判断一个进程是否存在
#-- coding:utf-8 -- import win32com.client def check_exsit(process_name): WMI = win32com.client.GetObject('winmgmts:') processCodeCov = WMI.ExecQuery('select * from Win32_Process where Name="%s"' % process_name) if len(processCodeCov) > 0:
好派笔记
2021/11/03
1.2K0
Python_代码练习_写一个判断是否为小数的函数
这两天在学习函数,练习写一个判断是否为小数的函数,看起来蛮简单的,飞速写完很是得意,然后测了一下,发现差得好多呀,这个并不像想象那样简单,我得到的教训是,想要把一个需求哪怕再小的需求考虑周全,都不是件简单的事。
呆呆
2021/05/25
5740
判断一个数是否是素数 Java
叶茂林
2023/07/30
1680
如何判断一个项目是否值得投资?
评判一个项目是否赚钱主要看他的投资回报率。现在生活中有很多项目宣称自己有多赚钱,其实稍微想一下,就会知道不太可能。
石云升
2022/08/25
5580
点击加载更多

相似问题

我如何检查一个JavaScript变量是否是函数类型?

2151

如何检查一个对象是否是一个日期?

2320

如何检查一个JSON响应元素是否是一个数组?

2158

如何测试一个Python函数异常输出?

2447

如何在python中循环一个函数def?

071
相关问答用户
腾讯 | 技术专家擅长2个领域
萃橙科技 | 合伙人擅长4个领域
高级数据分析师擅长5个领域
添加站长 进交流群

领取专属 10元无门槛券

AI混元助手 在线答疑

扫码加入开发者社群
关注 腾讯云开发者公众号

洞察 腾讯核心技术

剖析业界实践案例

扫码关注腾讯云开发者公众号
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档