Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/308.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python-iInstance(classInfo,classInfo)_Python_Instanceof_Isinstance - Fatal编程技术网

Python-iInstance(classInfo,classInfo)

Python-iInstance(classInfo,classInfo),python,instanceof,isinstance,Python,Instanceof,Isinstance,Python文档说,isinstance需要类的实例对象和类信息。问题是: 我只有2个class info对象,必须检查class_inf1是否是class_inf2的实例 例如: class Foo(object): pass class Bar(Foo): pass # It should check if Bar is a instance of Foo. Bar can either be one of many subclasses or # the same c

Python文档说,
isinstance
需要类的实例对象和类信息。问题是: 我只有2个class info对象,必须检查class_inf1是否是class_inf2的实例

例如:

class Foo(object):
    pass

class Bar(Foo):
    pass

# It should check if Bar is a instance of Foo. Bar can either be one of many subclasses or 
# the same class.
isinstance(Bar, Foo)

# i.e.: the function I'm looking for should be working as if Bar was an object:
isinstance(Bar(), Foo)

在我更复杂的代码中,我不知道Bar是什么,因为它是一个变量。我不能初始化它,因为我不知道它需要什么参数,而且它可能会做一些糟糕的事情。(我将永远不需要初始化这个变量,因为它是一种测试)。

您的术语相当混乱,但我的最佳猜测是,您想检查一个类是否从另一个类继承。这是通过
issubclass
内置实现的:

class B(object):
    pass

class D(B):
    pass

print issubclass(B, object)
print issubclass(D, B) # true
# order matters:
print issubclass(B, D) # false
# it's transitive:
print issubclass(D, object)
# a class is a subclass of itself:
print issubclass(B, B) # true

您的术语相当混乱,但我最好的猜测是您想检查一个类是否继承自另一个类。这是通过
issubclass
内置实现的:

class B(object):
    pass

class D(B):
    pass

print issubclass(B, object)
print issubclass(D, B) # true
# order matters:
print issubclass(B, D) # false
# it's transitive:
print issubclass(D, object)
# a class is a subclass of itself:
print issubclass(B, B) # true

没有“类信息”对象。类本身就是一个对象,而您正在处理的就是这些类对象。清除那些Java ISM:-)没有“类信息”对象。类本身就是一个对象,而您正在处理的就是这些类对象。清除那些Java ISM:-)你做对了。我在找
issubclass
。(只要Stackoverflow允许,我会在10分钟内接受你的回答。)你说得对。我在找
issubclass
。(只要Stackoverflow允许,我会在10分钟内接受你的回答)。