我有一个方法,它接受一个可以是多种类型的参数,并且必须根据类型做一件或另一件事,但是如果我检查所述参数的类型,我就不会得到“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
。我想我可以一直用这个,但我想知道发生了什么。。。我已经做了十分之十的这样的比较,所有这些都工作正常。。。
谢谢!!:)
目前没有回答
相关问题 更多 >
编程相关推荐