我有一个接受一个可以是几种类型的参数的方法,并且必须根据类型进行一件事情,但是如果我检查所述参数的类型,我不会得到“真实”类型,我总是得到< 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'instance'>类型(Class1())为< type'instance'>同样,事实证明,即使参数是Class2的一个实例,它将进入第一个比较…
顺便说一下,str(参数.__ class__)正确显示classes.Class1.我想我可以随时使用,但我想了解发生了什么…我已经做了十分之一的这样的比较,他们都正常工作了…
谢谢!! 🙂