如何(在运行时)检查一个类是否是另一个类的子类?

2023-12-14

假设我有一个花色类和四个花色子类:红心、黑桃、方块、梅花。

class Suit:
   ...
class Heart(Suit):
   ...
class Spade(Suit):
   ...
class Diamond(Suit):
   ...
class Club(Suit):
   ...

我有一个方法,它接收西装作为参数,它是一个类对象,而不是一个实例。更准确地说,它可能只接收四个值之一:Heart、Spade、Diamond、Club。我怎样才能做出确保这样的事情的断言?就像是:

def my_method(suit):
   assert(suit subclass of Suit)
   ...

我正在使用Python 3。


您可以使用issubclass()像这样assert issubclass(suit, Suit).

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

如何(在运行时)检查一个类是否是另一个类的子类? 的相关文章

  • 如何将本机 popcount 与 numba 一起使用

    我正在使用 numba 0 57 1 我想在我的代码中利用本机 CPU popcount 我现有的代码太慢 因为我需要运行它数亿次 这是一个 MWE import numba as nb nb njit nb uint64 nb uint6
  • 如何修复 Apache mod_wsgi 的 Python 版本不匹配问题?

    我收到此错误 Thu Jul 12 14 31 36 2012 error python init Python version mismatch expected 2 6 7 found 2 6 8 当尝试启动 Apache 服务器时 在
  • Pandas 字符串提取所有匹配项

    我正在学习 pandas 系列字符串方法中的正则表达式操作 我能够从字符串中提取第一个数字 但我的正则表达式与第二个数字不匹配 如何捕获这两个数字 注意第二行 第二个元素在这里是 NAN CODE import pandas as pd d
  • 如何忽略传递给函数的意外关键字参数?

    假设我有一些功能 f def f a None print a 现在 如果我有一本字典 比如dct a Foo 我可以打电话f dct 并得到结果Foo打印 但是 假设我有一本字典dct2 a Foo b Bar 如果我打电话f dct2
  • 如何使用 django (python) 和 s3 上传文件?

    我正在寻找一种将文件上传到 s3 的方法 我正在使用 django 我目前正在使用亚马逊的 python 库进行上传以及以下代码 View def submitpicture request fuser request session lo
  • 如何为 Intellij/PyCharm 设置 PYTHONSTARTUP 脚本

    我尝试添加PYTHONSTARTUP环境变量 我还尝试了自定义启动脚本 但更令人惊讶的是 这also没有工作 npa别名无法识别 出于一点绝望 我什至尝试添加到interpreter options 那什么也没做 实际上是什么Interpr
  • Spyder 导入模块出错

    我正在尝试在 Spyder 中使用 sklearn 一开始 当我尝试导入它时 我收到 ImportError No module named sklearn 然后我用 PYTHONPATH 管理器设置 PATH 然后使用工具菜单中的 更新模
  • Django 未在 404 页面上应用应用程序中的 CSS 文件

    姜戈3 0 8 Python 3 7 x 我有一个包含一些应用程序的 Django 项目 我正在尝试为 400 403 404 500 错误制作一些 默认 错误页面 我已经这样做了 并显示了适当的模板 但没有任何样式或 JS 在 404 错
  • turtle.Screen().screensize() 未输出正确的屏幕尺寸[重复]

    这个问题在这里已经有答案了 我编写了一些代码来在屏幕周围随机放置点 但是 它并没有覆盖整个屏幕 import turtle import random t turtle Turtle color red green blue pink ye
  • 在 vim 折叠线中语法高亮 Python

    我发现代码折叠 http en wikipedia org wiki Code folding帮助我更好地组织我的文件 因此 在我的底部 vimrc 我启用vim代码折叠 http vimdoc sourceforge net htmldo
  • 从主机名中提取域名

    是否有一种编程方式可以从给定的主机名查找域名 给出 gt www yahoo co jp 返回 gt yahoo co jp 有效但非常慢的方法是 拆分为 并从左侧删除 1 个组 使用 dnspython 加入并查询 SOA 记录 当返回有
  • 如何在Python中求和

    我想知道如何在 python 中表示总和而不需要像这样的循环here http docs scipy org doc scipy reference tutorial optimize html 我们有 def rosen x The Ro
  • python-polars 通过分隔符将字符串列拆分为许多列

    在 pandas 中 以下代码会将 col1 中的字符串拆分为许多列 有没有办法在极地做到这一点 d col1 a b c d a b c d df pd DataFrame data d df a b c d df col1 str sp
  • 根据给定列表中的值替换列中的值[重复]

    这个问题在这里已经有答案了 我在数据框中有一列 仅允许定义列表中存在的值 例如 给定列表 l1 1 2 5 6 如果列表中不存在列中的值 我需要将每个值替换为 0 column Expected column 1 1 5 5 2 2 3 0
  • 如何在交互式绘图(Python)中获得鼠标指向的(x,y)位置?

    我使用 ipython 笔记本 带有魔法 matplotlib nbagg 我正在审查matplotlib widget Cursor但仅查看光标widgets Cursor http matplotlib org 1 4 3 exampl
  • PyCharm - 如何挂起所有线程

    我们使用 PyCharm 5 0 1 进行多线程调试 当它在断点处停止时 只有特定线程停止 而所有其他线程继续 这使得 冻结时刻 和检查参数值以及其他线程的当前状态变得困难 当其中一个线程在断点处停止时 是否可以挂起所有线程 这在最新的 P
  • Python 队列 get()/task_done() 问题

    我的消费者端队列 m queue get queue task done
  • 如何可视化多维数据上的 kmeans 聚类

    我在 mnist 数据集上使用 kmeans 聚类算法 并希望可视化聚类后的图 到目前为止我做了这个 from mnist import MNIST mndata MNIST Datasets X train y train mndata
  • 在Python中从CSV文件中获取随机行并找到相应的单词,就像测验一样

    抱歉标题含糊不清 想不出更好的表达方式 我有一个包含德语 英语单词的 CSV 文件 如下所示 Ja Yes Nein No Katze Cat 我希望我的 python 脚本从 CSV 文件中打印一个随机的德语单词 并要求他们输入英语单词
  • django admin 中内联模型的分页器

    我有这个简单的 django 模型 由一个传感器和特定传感器的值组成 每个日射强度计的值数量很多 gt 30k 是否可以以某种方式分页PyranometerValues在特定日期或一般情况下将分页器应用于管理内联视图 class Pyran

随机推荐

  • Spring 和 Thymeleaf:从 th:each 表将对象发送到控制器

    我正在使用以下方法制作经验数据表th each属性与百里香叶我的目标是在每一行都有一个提交按钮 单击该按钮时 会将一个体验对象发送到我的控制器 该对象与我单击提交按钮的行相对应 我不知道出了什么问题 并且似乎无法在网上找到任何可以帮助解决此
  • 您能否提供一些示例来说明为什么使用正则表达式解析 XML 和 HTML 很困难? [关闭]

    Closed 这个问题需要多问focused 目前不接受答案 我看到人们犯的一个错误over and 再次正在尝试使用正则表达式解析 XML 或 HTML 以下是解析 XML 和 HTML 困难的一些原因 人们希望将文件视为行序列 但这是有
  • 确定论坛中未读的项目

    我正在尝试使用 PHP 和 MySQL 构建一个论坛系统 我想知道的是 如何设置它 以便当用户阅读论坛条目时 它显示为仅针对该用户阅读 无论他们在哪个论坛 直到其他人在其上发帖 目前 对于每个线程 我有一个带有 PostID 的表 并具有发
  • 无法确定元音和辅音

    通过下面的代码 无论输入的第一个字母是什么 它总是被确定为元音 original raw input Please type in a word firstLetter original 0 print firstLetter if fir
  • java / grails中的服务器端网络打印

    我是 java grails 开发人员 致力于重新设计软件系统 要求之一是让服务器端应用程序将数据发送到各种网络打印机以打印文本数据 我在网上搜索了有关java网络打印的信息 但没有找到 我查看了 Java Print Service AP
  • 角度图添加水平线

    我想像这里一样添加水平线 Chart js 绘制水平线到我的 angular chart js 如果我理解正确的话 我需要做的是扩展线型图表 我应该如何以及在哪里执行此操作 编写自己的指令 尝试扩展 Angular config 中的 ch
  • 通过下标获取末尾一位数组元素的地址:C++ 标准是否合法?

    我已经多次看到有人断言以下代码是 C 标准不允许的 int array 5 int array begin array 0 int array end array 5 Is array 5 在这种情况下合法的 C 代码吗 如果可能的话 我希
  • mysql其他表中子项的总价

    我有两个表 一个存储数据子级和父级层次结构以及其他路径和后代 userid parent price 1 null 20 2 1 20 3 1 20 4 2 20 5 2 20 6
  • 如何在不指定URL的情况下打开默认的android浏览器?

    我对此失去了理智 我想打开用户的默认网络浏览器 我可以用这个 startActivity new Intent Intent ACTION VIEW Uri parse http google com 打开浏览器并将用户引导至该 URL 但
  • 使用网格恢复“无效”不会使用 jQuery UI Draggable 返回起始位置

    简而言之 如果您将draggable与网格一起使用并在可拖动项目上设置revert invalid 它们不会返回到您开始拖动它们的完全相同的位置 它们会返回到靠近您开始拖动它们的位置的地方 非常奇怪 这很可能是用户界面中的一个错误 如果是这
  • 长按识别器结束后调用 wkwebviewdecidePolicyForNavigationAction

    我试图覆盖原来的 wkwebview 操作表 首先 我禁用了原始的 wkactionsheetwebView evaluateJavaScript document body style webkitTouchCallout none co
  • 如何在 Python 中对存储在文件中的非常大的列表进行打乱?

    我需要确定性地生成一个包含 0 到 2 32 1 数字的随机列表 这将是一种天真的 并且完全不起作用 的做法 只是为了清楚我想要什么 import random numbers range 2 32 random seed 0 random
  • MYSQL 自连接如何工作?

    我最近问了一个关于自加入的问题 我得到了很好的答案 该查询旨在查找紧随事件 1 1 天的事件 2 的 ID 开始日期和价格 该代码运行良好 但我不明白怎么做 有人可以尽可能彻底地解释查询的不同部分是什么以及它们的作用吗 SELECT eve
  • 如何使用数组的最后一个元素对集合进行排序

    我的问题是 我下面有一个集合 id 被忽略 value 10 r v 1 v 3 value 2 r v 4 v 1 value 100 r v 4 v 1 v 10 value 3 r 我如何按数组 r 的最后一个值对其进行排序 也就是说
  • 重载类中的函数调用运算符

    在我的教授给我的 h 文件中 他写道 double operator double x const 重载的要点是将 x 作为双精度值读入 并使用它来计算存储在类对象 Term 中的多项式 我在课堂实现中想到的是 double operato
  • 如何获取文本溢出:mozilla 中的省略号类型样式 (...)

    我正在尝试在 Mozilla 中获取省略号 我发现了一些 jquery 插件有助于在 Mozilla 中形成省略号 但是当大量数据到来时 它无法处理页面中形成良好的脚本错误 我认为实际上 jquery 逐字处理每个单词 这需要花费大量时间来
  • Cygwin 不编译 stod

    我正在尝试编译这个示例代码 include
  • Android:ArrayList 将项目移动到位置 0

    我有一个数组列表我需要确保某个特定项目位于 0 位置 如果不是 我需要将其移动到那里 该项目有一个isStartItem布尔值 这样我就可以轻松找到我需要位于位置 0 的特定项目 但是如何将其移动到正确的位置呢 我假设我需要使用这样的东西
  • MapView 在对话框内显示较暗的地图[重复]

    这个问题在这里已经有答案了 我正在尝试在对话框窗口内显示谷歌地图 对于此对话框 我使用以下代码行 final Dialog dialog new Dialog SetProfileOnlineActivity this dialog req
  • 如何(在运行时)检查一个类是否是另一个类的子类?

    假设我有一个花色类和四个花色子类 红心 黑桃 方块 梅花 class Suit class Heart Suit class Spade Suit class Diamond Suit class Club Suit 我有一个方法 它接收西