检测Python中的空函数定义

2024-01-15

我需要检测函数是否为空定义。它可以是这样的:

def foo():
    pass

or like:

def foo(i, *arg, **kwargs):
    pass

or like:

foo = lambda x: None

使用“检查”模块检测它们的最优雅的方法是什么?还有比这更好的方法吗:

def isEmptyFunction(func):
    e = lambda: None
    return func.__code__.co_code == e.__code__.co_code

您提出的方法不太有效,因为具有文档字符串的空函数的字节码略有不同。

的价值func.__code__.co_code对于没有文档字符串的空函数是'd\x00\x00S',而带有文档字符串的函数的值是'd\x01\x00S'.

出于我的目的,它只需添加额外的案例来测试:

def isEmptyFunction(func):
    def empty_func():
        pass

    def empty_func_with_doc():
        """Empty function with docstring."""
        pass

    return func.__code__.co_code == empty_func.__code__.co_code or \
        func.__code__.co_code == empty_func_with_doc.__code__.co_code
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

检测Python中的空函数定义 的相关文章

随机推荐

  • 从另一个线程关闭表单

    我有这个运行的代码 exe string openEXE C Users marek Documents Visual Studio 2012 Projects tours tours bin Debug netpokl exe Proce
  • 如何扩展 MongoDB?

    我知道 MongoDB 可以垂直扩展 如果我的磁盘空间不足怎么办 我目前正在使用 EC2 和 EBS 如您所知 我必须为 EBS 分配固定大小 如果 MongoDB 的增长大于 EBS 的大小怎么办 我是否必须创建更大的 EBS 并复制并粘
  • AsyncTask 中的 ProgressDialog

    我试图在从 HTTP 服务器加载 RSS 提要时显示自定义进度对话框 我进行了艰苦的搜索 但没有任何帮助我做到这一点 我唯一知道的是该解决方案应该使用AsyncTask 但我对传递给它的参数感到困惑AsyncTask 这是我的活动 publ
  • Python中四分位距应该如何计算?

    我有一个数字列表 1 2 3 4 5 6 7 我想要一个函数来返回这个数字列表的四分位数范围 四分位数间距是上四分位数和下四分位数之间的差值 我尝试使用 NumPy 函数和 Wolfram Alpha 计算四分位数范围 我发现所有的答案 从
  • 错误:R Shiny 图的第一个参数无效

    我编写了一个 R 脚本来使用 R 来训练自己和其他人使用 Shiny 人们可以选择一个数据集并在基础图上绘制 x 和 y 变量 还有一些其他用户定义的参数 这一切都有效 但它也会引发 错误 第一个参数无效 这可以在 绘图 选项卡 在闪亮的仪
  • Python:计算 Pandas 中两列之间的 tf-idf 余弦相似度时出现 MemoryError

    我正在尝试计算 Pandas 数据框中两列之间的 tf idf 向量余弦相似度 一列包含搜索查询 另一列包含产品标题 余弦相似度值旨在成为搜索引擎 排名机器学习算法的 特征 我在 iPython 笔记本中执行此操作 不幸的是遇到了 Memo
  • 在 javascript 中替换多个
    替换为单个

    我想更换多个 br 带有单个的标签 br 在一段文字中 我的文字就像 p fhgfhgfhgfh p br br p ghgfhfgh p br br p fghfghfgh p br br p fghfghfgh p br br p fg
  • Haskell 有什么大惊小怪的? [关闭]

    就目前情况而言 这个问题不太适合我们的问答形式 我们希望答案得到事实 参考资料或专业知识的支持 但这个问题可能会引发辩论 争论 民意调查或扩展讨论 如果您觉得这个问题可以改进并可能重新开放 访问帮助中心 help reopen questi
  • XPath:通过当前节点属性选择当前和下一个节点的文本

    如果这是一个重复的问题 我很抱歉 但我在 SO 或其他地方找不到另一个问题来处理我需要的内容 这是我的问题 我在用着scrapy从中获取一些信息this http www utm utoronto ca regcal WEBLISTCOUR
  • 程序下载 - IE CHROME - “不常下载,可能很危险。”

    我有一个 C 程序的安装程序 我将其上传到我的网站 但每当我尝试在 chrome 或 IE 中下载它时 我都会收到 MY FILE 不常下载 可能很危险 只有单击小箭头并从菜单中选择 保留 才能保留它 只有十分之一的用户能够获取我的程序 我
  • AWS Api Gateway 使用消息属性连接到 SQS

    我已按照本教程连接了一个 Api 网关方法来推送到 SQS 队列 https dzone com articles creating aws service proxy for amazon sqs https dzone com arti
  • 使用 Django Rest Framework 测试 CSRF 验证

    我正在使用 Django Rest Framework 3 想测试 CSRF 验证 首先 我初始化 DRFAPIClient client APIClient enforce csrf checks True 然后我为用户设置密码 以便我可
  • React Native - 如何使用图像组件中的uri加载本地图像?

    我知道我们可以使用以下方法加载本地图像
  • 设置步长极坐标图 matplotlib python

    Currently i m making a polar plot in matplotlib Unfortionaly the step size is 10 like shown below How can i change the s
  • Adobe Flash 和 Python

    是否可以使用CPython http www python org 开发基于 Adob e Flash 的应用程序 你可以试试ming http www libming org 用于生成 Macromedia Flash 文件 swf 的库
  • 如何更改切换按钮的颜色? [复制]

    这个问题在这里已经有答案了 可能的重复 更改开关的 打开 颜色 https stackoverflow com questions 11253512 change on color of a switch 我需要有一个ToggleButto
  • Cin 没有操作数 >>

    我不明白为什么这不起作用 由于某种原因我收到错误 error C2678 binary gt gt no operator found which takes a left hand operand of type std istream
  • 如何使用 Elasticsearch 处理多个更新/删除?

    我需要更新或删除多个文档 当我更新时我这样做 我首先搜索文档 为返回的结果设置更大的限制 假设大小 10000 对于每个返回的文档 我修改了某些值 我对elasticsearch 整个修改列表 批量索引 感到不满 此操作将持续进行 直到点
  • 在共享库Jenkins Pipeline中使用CURL命令上传本地文件

    我正在尝试将文件从本地目录上传到远程目录 我编写了一个 Groovy 库来执行此操作 def file WORKPLACE BUILD NUMBER file txt pulic uploadArtifct String user Stri
  • 检测Python中的空函数定义

    我需要检测函数是否为空定义 它可以是这样的 def foo pass or like def foo i arg kwargs pass or like foo lambda x None 使用 检查 模块检测它们的最优雅的方法是什么 还有