当前位置: 首页 > 知识库问答 >
问题:

Python在不检查超类的情况下确定isintance

燕成双
2023-03-14
class A:
   pass

class B(A):
   pass

如何在不引用A的情况下检查varB的实例,而不是A。我有大约50个类,其中一些类是子类。我想检查instance是否是子级。类似于not isinstance(var,A)的内容。

有什么办法吗?

共有1个答案

穆承运
2023-03-14

isinstance(object,classinfo)检查对象是否是作为第二个参数给定的类的实例(或子类)。

type(object)返回对象的确切类型。

因此,可以检查对象是否是a的子类的实例,而不是a本身,可以执行如下操作。

if isinstance(obj, A) and not type(obj) == A:
    print("is subclass of A")
else:
    print("is either A or completely unrelated")
    null
 类似资料:
  • 问题内容: 有没有一种方法可以确定给定的示例实体类: 所谓“新”,是指有人调用了新的A()甚至可能设置了名称,但从未保存或保留。 通常,人们可以检查id,但是我想要一种不需要id或getId()方法的解决方案。 基本上,即使在分离模式下,此实体也已持久化到数据库中。 @Version或getVersion也不是令人满意的解决方案。 也许是独立的|| isAttached可能有效,但是我不确定如何在

  • 问题内容: 我曾经用来检查Perl程序的语法,然后退出而不执行它。有没有等效的方法可以对Python脚本执行此操作? 问题答案: 您可以通过编译来检查语法:

  • 问题内容: 我试图添加一个 检查约束 ,但到目前为止,我只是失败了。解决这个问题的方法是什么: 讯息1046,第15级,州1,第6行 在这种情况下,不允许子查询。仅允许标量表达式。 这是代码: 问题答案: SQL Server当前不支持CHECK CONSTRAINT的子查询 。 您已经发现,尝试规避子查询限制时,涉及UDF的CHECK约束可能会出现问题。 替代性约束执行策略是 触发过程 和 嵌入

  • 有什么方法可以确定已经附加到场景但设置为不可见的节点的边界(尤其是高度和宽度)吗? 我想仅在其宽度超过100px时才在屏幕上显示标签...但它始终为 0: sysout的结果:(还有n.getWidth()也好不到哪里去) BoundingBox[minX: 0.0, minY: 0.0, minZ: 0.0,宽度: 0.0,高度: 0.0,深度: 0.0, maxX: 0.0, maxY: 0.

  • 问题内容: 我已经看到了几种通过首先导入来查找模块路径的方法。有没有一种方法,而无需导入模块? 问题答案: 使用pkgutil模块: 使用imp模块: 注意:使用imp模块,您 无法 做类似的事情

  • 当我在NodeJS中使用multer上传图像文件时,我想检查它的真实类型。例如,当我检查文件的mimtype或ext时,如果上传照片的ext从rar变为JPEG。服务器将接受文件,但它应该。谁能帮助我的文件筛选?

  • 问题内容: 我正在开发一个文档测试框架-基本上是PDF的单元测试。测试是框架定义的类的实例的(修饰)方法,并且在运行时定位并实例化这些实例,并调用这些方法以执行测试。 我的目标是减少将要编写测试的人员所关心的古怪的Python语法,因为这些人可能是也可能不是Python程序员,甚至根本不是很多程序员。因此,我希望他们能够为方法编写“ def foo():”而不是“ def foo(self):”,