首页 > 编程语言 >Python一切皆对象_ type & object & class

Python一切皆对象_ type & object & class

时间:2023-02-09 17:46:47浏览次数:43  
标签:__ Python object 对象 type class

相比较于Java等静态语言,在Python中一切皆对象的概念更加彻底,函数和类都是对象,这样使得Python更加灵活。下面将对Python中对type、object以及class对关系进行梳理。

关系图:

先来看下面的示例一:

>>> a = "hello"
>>> type("hello")
<class 'str'>
>>> type(str)
<class 'type'>
>>> class Student:
...     pass
...
>>> type(stu)
<class '__main__.Student'>
>>> type(Student)
<class 'type'>

我们都知道通过内置的type函数可以打印对象的类型,从上面例子中可以看出字符串"hello"是由str类生成的对象,而str类对象(在一切皆对象中,这里把类这种对象称为类对象)又是type类生成的对象(1 <-- int <-- type);stu对象是由我们自定义类Student生成的,而Student类对象也是由type类生成的(stu <-- Student <-- type)。
从示例一中,可以总结出:在Python中自定义类和内置类都是对象,是由type类生成的(又称为元类)

接下来思考下面一个问题:既然一切皆对象,那么type类对象又是由什么创建的呢?可以简单测试下:

>>> type(type)
<class 'type'>

可以看出type类对象是由它本身创建的。

再来看一下类的继承关系,我们都知道在Python中object类是一切类的基类,可以通过查看 __bases__ 属性,看下示例一中自定义的Student类:

>>> class Student:
...     pass
...
>>> Student.__bases__
(<class 'object'>,)

那么可以猜想下:type类的基类又是谁呢?

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

通过验证可以知道type类也继承自object类,而object类没有继承的类;并且object类也是由type类生成的。(这里比较绕,可以再回顾下最开始的关系图)

标签:__,Python,object,对象,type,class
From: https://www.cnblogs.com/zzggtt/p/17106438.html

相关文章

  • Python中合法标识符需要满足什么条件?
    所谓的标识符就是用户在定义变量的时候,使用的一种名字,也可以说是一种符号,可应用于不同的环境,而且每一个符号都表示着不同的意思。在Python中,对于标识符的定义是有一定要......
  • PYTHON数据容器
    PYTHON数据容器一种可以容纳多份数据的数据类型,容纳的每一份数据称之为1个元素,每一个元素,可以使任意类型的数据数据容器根据特点的不同,分为五类:列表(list)、元组(tupl......
  • python3中,//、/ 的区别
    //:地板除,返回整数结果/:浮点数除法,返回浮点结果例:print(3//2)  #输出1print(3/2)  #输出1.5拓展:判断水仙花数# 题目:打印出所有的"水仙花数",所谓"水仙花数"是指一个三位......
  • python3中,isinstance() 函数
    #isinstance()函数来判断一个对象是否是一个已知的类型,类似type()。#返回值:如果对象的类型与参数二的类型相同则返回True,否则返回False 使用isinstance函数的实例:a=2prin......
  • python selenium.remote远程连接时间达10分钟
    问题:在机器A搭建了selenium-grid的环境,hub以4444端口号启动,并在4444下注册了子node,端口4445,浏览器配置chrome使用代码进行远程连接,并创建会话:传入的server_url= http:......
  • Python教程:selenium模块用法教程
    1.介绍selenium最初是一个自动化测试工具,而爬虫中使用它主要是为了解决requests无法直接执行JavaScript代码的问题selenium本质是通过驱动浏览器,完全模拟浏览器的操作,比如......
  • 一辆车帮你读懂python函数
     函数的概念:有一个超市,a要去买西,走一段距离,b去买东西走一段距离,c去买东西也走一段距离,于是就有了公交车,abc都可以搭这一趟公交车去超市买东西,这里的公交车就是函数。函......
  • OpenCV—python 基于傅里叶变换的图像矫正
    基于傅里叶变换的图像矫正importcv2importnumpyasnpimportmathdeffourier_demo():#1、灰度化读取文件,img=cv2.imread('english_rotation.jpg'......
  • Centos7 Python2.7升级3.6.9之靠谱教程
    Python2.7现在已经正式被放弃了,运行会报错,所以得玩Python3版本了;这里分享Centos7系统下将Python2.7升级3.6.9的方法,非常靠谱本人刚刚测试通过,看了老外的教程;简单三......
  • 用c编译 php/python拓展(swig生成PHP扩展)
    https://blog.csdn.net/cuxiong8996/article/details/107153840 swig生成了PHP的扩展:https://blog.csdn.net/weixin_39622419/article/details/1160659781、安装swig......