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