isPython中的运算符检查两个参数是否引用内存中的同一对象;它不像
isC#中的运算符。
从文档:
运算符是否测试对象标识:并且仅当x和y是同一对象时,x is y才是true。x不是y会产生反真值。
在这种情况下,您要寻找的是
isinstance。
如果object参数是classinfo参数或其(直接或间接)子类的实例,则返回true。
>>> class animal(object): pass>>> class dog(animal): pass>>> myDog = dog()>>> isinstance(myDog, dog)True>>> isinstance(myDog, animal)True
但是,惯用的Python指示您(几乎)从不进行类型检查,而是依靠鸭子类型进行多态行为。使用
isinstance理解继承没有错,但是通常应该在“生产”代码中避免使用继承。
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)