3.__bases__,__subclasses__(),issubclass(),__class__,type(),isinstance(),id(),is运算符的详解

继承

如果您想知道当前子类继承自哪个父类,可以使用__bases__属性

>>> int.__bases__
(<class 'object'>,)
>>> object.__bases__
()

如果您想知道当前类的所有子类有哪些,可以使用__subclasses__()方法

>>> int.__subclasses__()
[<class 'bool'>, <enum 'IntEnum'>, <enum 'IntFlag'>, <class 'sre_constants._NamedIntConstant'>]

如果您想知道两个类是否存在继承关系,可以使用issubclass()函数

>>> issubclass(bool,int)
True

对象

每个对象都有各自的编号、类型和值。一旦对象被创建后,它的 编号 就绝不会改变;你可以将其理解为该对象在内存中的地址。

如果您想知道当前对象是哪个类的实例或者说是当前对象是什么类型,可以使用__class__属性或type()函数

>>> a = 5
>>> a.__class__
<class 'int'>
>>> int.__class__
<class 'type'>
>>> object.__class__
<class 'type'>
>>> type(5)
<class 'int'>
>>> type(int)
<class 'type'>
>>> type(object)
<class 'type'>

如果您想知道某个对象是否是某个类的实例时,可以使用isinstance()函数

>>> isinstance(5,int)
True

如果您想知道代表对象其编号的整型数,可以使用id() 函数

>>> a = "hello"
>>> id(a)
140410100867376

如果您想比较两个对象的编号是否相同,可以使用is运算符

>>> a = "hello"
>>> id(a)
140410100867376
>>> b = "hello"
>>> id(b)
140410100867376
>>> print(a is b)
True

原创文章,作者:huoxiaoqiang,如若转载,请注明出处:https://www.huoxiaoqiang.com/python/pythonhigh/5814.html

发表评论

登录后才能评论