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

2023-12-23

我有一个方法,它接受可以是多种类型的参数,并且必须根据类型做一件事或另一件事,但是如果我检查所述参数的类型,我不会得到“真实”类型,我总是得到<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()):
    # ... #

And as type(parameter)回报<type 'instance'> and type(Class1()) is <type 'instance'>同样,事实证明,即使参数是 Class2 的实例,它也会进入第一次比较......

顺便一提,str(parameter.__class__)正确显示classes.Class1。我想我总是可以使用它,但我想了解发生了什么......我已经进行了十分之二的比较,并且所有这些都工作正常......

谢谢你!! :)


旧式课程就是这样做的。派生你的课程object在他们的定义中。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

为什么 type(classInstance) 返回“instance”? 的相关文章

随机推荐