Python语言__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/experience/pythone/5814.html

(1)
上一篇 2021年8月6日 12:59
下一篇 2021年8月8日 13:48

相关推荐

  • conda和pip的区别

    功能 conda pip 安装并管理python多版本 是 否 包格式 二进制文件 wheel 或 source 可能需要编译器 不需要 可能需要 包装类型 任何 仅限Python 包来源 Anaconda repo and cloud PyPI 包依赖管理 是 没有 虚拟环境 是的,内置 否,需要virtualenv…

    Python经验 2020年12月4日
    01.6K0
  • conda、miniconda、anaconda、仓库的详解

    工具 conda是 由Anaconda®公司用python语言开发维护的一个支持安装并管理python多版本、包管理、包依赖管理、虚拟环境管理四大功能于一身的开源免费工具,支持任何编程语言:Python, R, Ruby, Lua, Scala, Java, JavaScript, C/ C++, FORTRAN等。 …

    Python经验 2021年8月9日
    04.8K0
  • Python虚拟隔离环境pyvenv、venv、virtualenv的来龙去脉

    2011年6月13日,PEP 405 — Python Virtual Environments提案建议向 Python 添加一种机制,用于轻量级“虚拟环境”,具有自己的站点目录,可选择与系统站点目录隔离。每个虚拟环境都有自己的 Python 二进制文件(允许使用各种 Python 版本创建环境),并且可以…

    Python经验 2020年11月24日
    01.6K0

发表回复

登录后才能评论