为什么类型(classInstance)返回“instance”?

2024-04-29 01:35:45 发布

您现在位置:Python中文网/ 问答频道 /正文

我有一个方法,它接受一个可以是多种类型的参数,并且必须根据类型做一件或另一件事,但是如果我检查所述参数的类型,我就不会得到“real”类型,我总是得到<type 'instance'>,这就弄乱了我的比较。

我有点像:

from classes import Class1
from classes import Class2
# Both classes are declared in the same file.
# I don't know if that can be a problem         #
# ... #
def foo(parameter)
    if (type(parameter) == type(Class1()):
    # ... #
    elif (type(parameter) == type(Class2()):
    # ... #

type(parameter)返回<type 'instance'>,并且type(Class1())也是<type 'instance'>时,结果表明,即使参数是类2的实例,它也将进入第一个比较。。。

顺便说一下,str(parameter.__class__)正确地显示了classes.Class1。我想我可以一直用这个,但我想知道发生了什么。。。我已经做了十分之十的这样的比较,所有这些都工作正常。。。

谢谢!!:)


Tags: 方法instancefromimport类型参数ifparameter