为什么要检查 cls 是否是 __subclasshook__ 中的类?

2024-02-26

In the Python 标准库文档 https://docs.python.org/3/library/abc.html#abc.ABCMeta.__subclasshook__,示例实现__subclasshook__ is:

class MyIterable(metaclass=ABCMeta):

[...]

@classmethod
def __subclasshook__(cls, C):
    if cls is MyIterable:
        if any("__iter__" in B.__dict__ for B in C.__mro__):
            return True
    return NotImplemented

CPython 的实现collections.abc大多数情况下确实遵循这种格式__subclasshook__它定义的成员函数。 明确检查的目的是什么cls争论?


__subclasshook__是遗传的。这cls is MyIterable检查确保具体子类MyIterable使用常规的issubclass逻辑而不是检查__iter__方法。否则,对于一个类MyConcreteIterable(MyIterable), 你将会拥有issubclass(list, MyConcreteIterable)返回True.

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

为什么要检查 cls 是否是 __subclasshook__ 中的类? 的相关文章

  • 将 numpy 数组写入文本文件的速度

    我需要将一个非常 高 的两列数组写入文本文件 而且速度非常慢 我发现如果我将数组改造成更宽的数组 写入速度会快得多 例如 import time import numpy as np dataMat1 np random rand 1000
  • 如何使用显式引用转储 YAML?

    递归引用非常适合ruamel yaml or pyyaml ruamel yaml dump ruamel yaml load A A id001 id001 然而 它 显然 不适用于普通引用 ruamel yaml dump ruamel
  • TF map_fn 或 while_loop 用于不同形状的张量列表

    我想处理不同形状的张量序列 列表 并输出另一个张量列表 考虑每个时间戳上具有不同隐藏状态大小的 RNN 就像是 输入 tf ones 1 2 2 tf ones 2 2 3 tf ones 3 2 1 输出 tf zeros 1 2 4 t
  • 了解 Python 中的酸洗

    我最近接到一项作业 需要以腌制形式放置一本字典 其中每个键引用一个列表 唯一的问题是我不知道腌制形式是什么 谁能给我指出一些好的资源的正确方向来帮助我学习这个概念 pickle 模块实现了一个基本但强大的算法 用于序列化和反序列化 Pyth
  • 当单词以“|”分隔时如何读取文件(埃因霍温)?

    在Python中 我有一个文件 其中的单词由 例如 city state zipcode 我的文件阅读器无法区分单词 另外 我希望我的文件阅读器从第 2 行而不是第 1 行开始 如何让我的文件阅读器分隔单词 import os import
  • 根据开始列和结束列扩展数据框(速度)

    我有一个pandas DataFrame含有start and end列 加上几个附加列 我想将此数据框扩展为一个时间序列 从start值并结束于end值 但复制我的其他专栏 到目前为止 我想出了以下内容 import pandas as
  • 有没有办法在每个特定的时间间隔运行 python Flask 函数并在本地服务器上显示输出?

    我正在使用 Flask 工作 python 程序 我想从字典中提取键 该密钥为文本格式 但我想在每个特定的时间间隔后重复上述整个过程 并每次在本地浏览器上显示此输出 我已经使用flask apscheduler尝试过这个 程序只运行一次并显
  • 更改 python tkinter canvas 中的线坐标

    我画了一条线tkinter Canvas现在我想移动一端 这可能吗 例如和itemconfig import tkinter tk tkinter Tk canvas tkinter Canvas tk canvas pack line c
  • WindowsError:[错误 126] 使用 ctypes 加载操作系统时

    python代码无法在Windows 7平台上运行 def libSO lib ctypes cdll LoadLibrary ConsoleApplication2 so lib cfoo2 1 3 当我尝试运行它时 得到来自python
  • 如何使用 Django 项目设置 SQLite?

    我已阅读 Django 文档 仅供参考 https docs djangoproject com en 1 3 intro tutorial01 https docs djangoproject com en 1 3 intro tutor
  • 在Python中计算内存碎片

    我有一个长时间运行的进程 不断分配和释放对象 尽管正在释放对象 但 RSS 内存使用量会随着时间的推移而增加 如何计算发生了多少碎片 一种可能性是计算 RSS sum of allocations 并将其作为指标 即便如此 我该如何计算分母
  • 具有屏蔽无效值的 pcolormesh

    我试图将一维数组绘制为 pcolormesh 因此颜色沿 x 轴变化 但每个 x 的 y 轴保持不变 但我的数据有一些错误值 因此我使用屏蔽数组和自定义颜色图 其中屏蔽值设置为蓝色 import numpy as np import mat
  • 由于 json 字符串化 dict 键导致数据丢失

    考虑下面的例子 gt gt gt import json gt gt gt d 0 potato 0 spud gt gt gt json dumps d 0 potato 0 spud gt gt gt json loads json d
  • Python 声音(“铃声”)

    我想让一个 python 程序在完成任务时通过发出嘟嘟声来提醒我 目前 我使用import os然后使用命令行语音程序说 进程完成 我更愿意它是一个简单的 铃 我知道有一个函数可以用于Cocoa apps NSBeep 但我认为这与此没有太
  • 处理大文件的最快方法?

    我有多个 3 GB 制表符分隔文件 每个文件中有 2000 万行 所有行都必须独立处理 任何两行之间没有关系 我的问题是 什么会更快 逐行阅读 with open as infile for line in infile 将文件分块读入内存
  • Python 通过从现有 csv 文件中过滤选定的行来写入新的 csv 文件

    只是一个问题 我试图将 csv 文件中的选定行写入新的 csv 文件 但出现错误 我试图读取的 test csv 文件是这样的 两列 2013 9 1 2013 10 2 2013 11 3 2013 12 4 2014 1 5 2014
  • Python:高精度time.sleep

    你能告诉我如何在 Win32 和 Linux 上的 Python 2 6 中获得高精度睡眠函数吗 您可以在中使用浮点数sleep http docs python org library time html time sleep 该参数可以
  • 如何在单元测试中使用 JSON 发送请求

    我的 Flask 应用程序中有在请求中使用 JSON 的代码 我可以像这样获取 JSON 对象 Request request get json 这一直工作得很好 但是我正在尝试使用 Python 的 unittest 模块创建单元测试 但
  • 如何获取所有mysql元组结果并转换为json

    我能够从表中获取单个数据 但是当我试图获取表上的所有数据时 我只得到一行 cnn execute sql rows cnn fetchall column t 0 for t in cnn description for row in ro
  • 使用 urllib 编码时保持 url 参数有序

    我正在尝试用 python 模拟 get 请求 我有一个参数字典 并使用 urllib urlencode 对它们进行 urlencode 我注意到虽然字典的形式是 k1 v1 k2 v2 k3 v3 urlencoding 后参数的顺序切

随机推荐

  • 为什么 C# 不提供类似于 C++ 的常量性?

    C 中的引用与 C 中的引用非常相似 只不过它们是垃圾收集的 为什么 C 编译器支持以下内容如此困难 成员函数标记const 对标记的数据类型 字符串除外 的引用const 通过其中仅const可以调用成员函数吗 我相信如果 C 支持这一点
  • 从 Python 运行 m 文件

    pymat 似乎不适用于当前版本的 matlab 所以我想知道是否还有另一个等效的版本 我还没有找到 理想的要点是从 python 2 6 运行一个 m 文件 像 scipy 这样的替代方案不适合 因为我认为它们不能运行 m 文件中的所有内
  • 如何在 Saxon 中使用 XPath 3.1?

    我当前使用 XPath 3 1 语法 但由于某种原因 Saxon 输出错误 To use XPath 3 1 syntax you must configure the XPath parser to handle it 我该怎么做呢 非常
  • LINQ 选择间隔 X 分钟的记录

    我有一个简单的表格来记录输入日期 我想选择相隔 X 分钟的记录 IMAGE LOCATION IMAGE DATE 2227 jpg 08 03 2014 22 27 47 2228 jpg 08 03 2014 22 28 48 2229
  • 如何在我的小程序中使用 JXMapViewer?

    我想编写一个必须使用缩放 平移工具渲染地图图像的小程序 我发现 JXMapViewer 可以帮助我 我该如何使用它 我在哪里可以找到相关文档 帮助我编写一个小程序 请求我的图像服务器提供要渲染的图块 图像服务器怎么样 帮助我 JXMapVi
  • Android 模拟器错误:std::bad_alloc

    我正在使用 Eclipse Juno 和 Android 模拟器 SDK Tools 21 1 并且多次遇到此错误 嗯 6 小时内出现两到三次 2013 03 22 11 41 19 Emulator terminate called af
  • Apache proxypass 缓存的 IP 地址

    我使用 Apache Web 服务器 2 4 通过 proxypass 指令将传入的 HTTP 请求代理到我们的后端服务器 我还通过 Apache 传递来自后端服务器的传出请求 再次使用 proxypass 例如 lt Location o
  • 在 NiFi 处理器“InvokeHTTP”中,您在哪里编写 POST 请求的正文?

    在发布有关 Apache NiFi InvokeHTTP 的问题之前 我已经浏览了所有其他问题及其答案 但我仍然不确定我应该拥有的最佳流程 我的情况如下 1 从 Apache Kafka 我获取原始元数据 2 使用EvaluateJSONP
  • 使用 React-Native 监听 Android 上的传入链接

    我可以使用链接库通过react native监听和处理IOS上的传入链接 https facebook github io react native docs linking html https facebook github io re
  • 如何在java中验证unix时间戳?

    我需要验证给定的输入字符串是否有效Timestamp以毫秒为单位 例如 如果给定Timestamp String time 1310966356458 那么它应该返回true if String time 1000 那么它应该返回 fals
  • 我可以通过在 Airflow 中向运算符添加更多 cpu 来提高处理速度吗?

    In airflow cfg有一个部分称为 operators where default cpus被设置为1 and default ram and default disk都设置为512 我想了解如果增加这些参数是否会提高处理速度 我查
  • 基于 JWT 的 标签身份验证?

    假设我有一个单页面应用程序 它使用 JWT 令牌对后端 REST api 进行身份验证 我在执行 REST 请求时在 http 标头内传输 JWT 令牌 到目前为止 一切都很好 现在 假设我想从服务器下载图像 并且我希望该图像只能由经过身份
  • 替换文件路径中的分隔符

    我正在 VS 2008 中开发一个 C Web 应用程序 我让用户选择一个输入文件 然后将文件路径存储在一个字符串变量中 但是 它将这条路径存储为 C folder 所以我的问题是如何将此文件路径转换为单个 谢谢大家的帮助 请原谅我 因为我
  • 反转列表时出现意外结果

    我需要对下面代码的意外结果进行一些解释 似乎是由于一些错误 reverse b gt b reverse reverse x x reverse x xs last x xs reverse xs Main gt reverse 0 8 2
  • 无法将类型 string 隐式转换为 System.date.time 但在 datetime 中声明

    我是 C 的初学者 编写了一些代码 但出现错误 错误是 无法将字符串类型隐式转换为 System date time 但我在这里看到我在字符串中声明 public partial class HDate private string Sta
  • 为什么当我 pip freeze 时没有出现 setuptools 1.3.1?

    我在跑步virtualenvwrapper和 Ubuntu 12 04 上的朋友 virtualenvwrapper 1 7 1 2 virtualenv 1 7 1 2 pip 1 0 Distribute 0 6 24 Python 2
  • 从 perf 获取用户空间堆栈信息

    我目前正在尝试在我正在测试的 PostgreSQL 版本中追踪一些幻像 I O 它是一个多进程服务器 将磁盘 I O 关联回特定后端和查询并不简单 我还以为Linux的perf工具将是理想的选择 但我正在努力捕获块 I O 性能计数器指标并
  • SQL中如何知道记录的插入日期

    我在用phpMyAdmin对于我的项目 我有一张没有的桌子date datetime field 我想知道是否有办法知道我何时在数据库中插入每条记录 在设计数据库时 如果您忘记保留一个额外的字段来存储一行的插入时间 那么您只剩下一个选项来了
  • “激活”的 RESTful URL

    我有一个资源 project 可以激活和停用 用于此目的的最 RESTful URL 端点是什么 现在我在想 projects id activate and projects id deactivate 但我不认为这很RESTful 另外
  • 为什么要检查 cls 是否是 __subclasshook__ 中的类?

    In the Python 标准库文档 https docs python org 3 library abc html abc ABCMeta subclasshook 示例实现 subclasshook is class MyItera