gpt4 book ai didi

python - 为什么 type(classInstance) 返回 'instance' ?

转载 作者:太空狗 更新时间:2023-10-29 17:52:53 25 4
gpt4 key购买 nike

我有一个方法接受一个可以有多种类型的参数,并且必须根据类型做一件事或另一件事,但是如果我检查所述参数的类型,我不会得到“真实的”类型,我总是得到 <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'>同样,事实证明即使参数是Class2的实例,它也会进入第一次比较......

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

谢谢!! :)

最佳答案

旧式类会这样做。在它们的定义中从 object 派生您的类。

关于python - 为什么 type(classInstance) 返回 'instance' ?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3110624/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com