我有一个接受类(不是实例)的函数,并且根据它是否是特定类或其子类,我需要将其传递给另外两个(第三方)工厂函数中的一个.
(为了防止任何异议,我知道这不是非常Pythonic,但我依赖于第三方库接受的内容.)
issubclass仅适用于实例,不适用于类对象本身.我想我可以实例化类,执行issubclass并丢弃实例,但这似乎有点浪费.
这就是我现在正在做的事情,依靠内置的mro属性来判断某个类是否在我班级的祖先列表中.这样做是否安全,有没有更好的方法呢?
if GenericClass in myclass.__mro__:
result = generic_factory(myclass)
else:
result = other_factory(myclass)
Run Code Online (Sandbox Code Playgroud)
Unk*_*own 29
issubclass仅适用于实例,而不适用于类对象本身.
这对我来说可以:
>>> class test(object):pass
...
>>> issubclass(test,object)
True
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
2856 次 |
| 最近记录: |