Python __来自两个不同导入的类\相等性检查

Python __来自两个不同导入的类\相等性检查,python,python-3.x,python-importlib,Python,Python 3.x,Python Importlib,在我的python软件项目中,我有一个相当复杂的导入设置,在这里,我不能用importlib动态导入一些模块。 因此,我遇到了两个对象属于同一类的情况,但由于它们是独立加载的,因此它们之间的相等性检查会给出False 每个对象的对象的字符串表示形式。\uuuuu class\uuuuu看起来相同: vs。 在两个类上使用\uuuuu eq\uuu进行相等性检查,在type()上使用\uuuu eq\uuuu进行相等性检查,但是isinstance失败 我可以通过比较repr(obj.\uu cl

在我的python软件项目中,我有一个相当复杂的导入设置,在这里,我不能用importlib动态导入一些模块。 因此,我遇到了两个对象属于同一类的情况,但由于它们是独立加载的,因此它们之间的相等性检查会给出
False

每个对象的
对象的字符串表示形式。\uuuuu class\uuuuu
看起来相同:
vs
。 在两个类上使用
\uuuuu eq\uuu
进行相等性检查,在
type()
上使用
\uuuu eq\uuuu
进行相等性检查,但是
isinstance
失败

我可以通过比较
repr(obj.\uu class\uuuu)
来想出一种简单的方法来进行平等性检查,但这看起来并不是很好。 另一个解决方案是“隐藏”指定某个唯一类id的属性

有没有另一种(更好的)方法可以在本质相同但由
importlib
独立加载的两个类之间进行相等性检查

编辑: 重要提示:我不是在寻找避免两次导入类的方法。 我的项目中的一些模块会有目的地动态重新导入,以便在运行时考虑这些模块中的代码更改。
然后,这些模块再次导入其他模块,例如我想与之进行平等性检查的驱动程序。即使不必重新导入那些正在更改的模块所使用的未更改的模块也很好,但我知道,每当我动态导入一个模块时,所有依赖项都会重新导入。(如果您有一个关于如何重新导入模块a的解决方案,该模块本身有一个(静态)导入B,但不必将B与a一起重新导入,我会很高兴。但这并不是我所要求/寻找的直接内容。)

一开始不加载同一个模块两次如何?解决X而不是Y。如果我不能用importlib动态导入一些模块,请仔细阅读我的帖子。好吧,这些类实际上不是同一个类,正是因为你分别导入了它们。例如,您可以执行
drivers.MongoDriver=decoration(drivers.MongoDriver)
,它只会修改其中一个。你应该真正避免原因而不是结果。顺便说一句,你没有真正解释类被导入两次是如何发生的,因此我们无法帮助你避免这个问题。它们被导入两次,因为某些模块是故意重新导入的(在代码更改时)。不是驱动程序本身,而是重新导入的模块导入这些驱动程序。我完全知道它们实际上不是同一个类,我正在寻找一种解决方法,因为我不能在动态导入上做太多更改。这些只是软件的预期部分