犹记得当初学习Python的时候,对于Python一切皆对象很是懵逼,因为Python是面向对象的动态型语言,而在函数及高阶函数的应用中,如若对于一切皆对象不是有很透彻的了解,基础不是那么牢固的话,那么对于今后的Python进阶而言,就有点拖后腿了,鉴于有朋友跟我联系说,对于一切皆对象掌握的不是太牢固,那么, 木子的本篇博客就对此知识点进行概括总结。 如有不当之处,还望各位大佬指正。

简述

长话短说,本文主要针对Python一切皆对象来讨论,主要从以下两个方面来论述:

Python的一等公民

type、object和class的关系

对于Python的常见内置类型,本篇就不做详细阐述

这里要注意:不管你是为了Python就业还是兴趣爱好,记住:项目开发经验永远是核心,如果你没有2020最新python入门到高级实战视频教程,可以去小编的Python交流.裙 :七衣衣九七七巴而五(数字的谐音)转换下可以找到了,里面很多新python教程项目,还可以跟老司机交流讨教!

内置类型: None(全局只有一个) 数值类型:int、float、complax(复数)、bool 迭代类型 序列类型:list、bytes、range、tuple、str、array 映射类型:dict 集合类型:set、frozenset 上下文管理类型:with

Python的一等公民

何为一等公民?

可以赋值给一个变量

可以添加到集合对象中

可以作为参数传递给函数

可以当做函数的返回值

针对赋值给变量及添加到集合对象中,代码予以展示:

def func(name='Python'):

print(f'the func is {name}')

class Test:

def __init__(self):

print(f'the class is {Test.__name__}') obj_list = [] obj_list.append(func) obj_list.append(Test) for item in obj_list: # 添加至集合对象中 print(item()) 复制代码

那么上述例子,代码运行结果如下:

the func is Python# 函数func运行,打印结果

None# 函数func因没有return,返回None

the class is Test# 类Test运行,打印结果

<__main__.test object at># 类Test运行,因没有返回值,调用item(),返回类Test的对象

复制代码

那么对于可以作为参数传递,以下代码展示:

def func(name='Python'):

print(f'the func is {name}')

def decorator_func():

print(f'the decorator_func is running') return func # 返回函数func my_test = decorator_func() my_test('木子的三维世界') # 传递参数,调用func 复制代码

上述代码运行结果如下:

the decorator_func is running

the func is 木子的三维世界

复制代码

type、object和class的关系

上面的代码是演示何为Python的一等公民,那么对于为什么Python一切皆对象,想必有些道友还是有点不太懂,那么重点来了,了解完type、object和class后,木子觉得大家应该就可以彻底hold住了。 为便于理解,代码予以展示:

# 示例如下

a=2019

b="一切皆对象"

print(type(2019))

print(type(int)) print(type(b)) print(type(str)) class Student: pass stu = Student() print(type(stu)) print(type(Student)) print(int.__bases__) print(str.__bases__) print(Student.__bases__) print(type.__bases__) print(object.__bases__) print(type(object)) print(type(type)) 复制代码

上面代码,运行结果如下:

# 2019是由int这个类创建的实例

# int这个类是由type这个类创建的实例

# 同上 # stu是类Student创建的实例 # 类Student是由type这个类创建的实例 (,) # 类int的基类是object这个类 (,) # 同上 (,) # 同上 (,) # 重点:类type的基类也是object这个基类 () # 重点:类object没有基类 # 难点:类object是由类type创建的实例 # 难点:类type是由type类自身创建的实例 复制代码

对于上面的代码,我们可以得出以下结论:

类type产生int实例,类int又有了2019这样的实例

类object是最顶层的基类

type也是一个类,同时也是一个对象

想必有些道友,看到上面的代码,已经有点懵逼了。请看下图:

对于上面图片的解读如下:

object是一切对象:list、str、dict、tuple的基类,同时object是type的实例

类type是自身的实例,同时type也继承自object类

由结论1和结论2,得出一切皆对象,同时一切皆继承自object类

总结注意:不管你是为了Python就业还是兴趣爱好,记住:项目开发经验永远是核心,如果你没有2020最新python入门到高级实战视频教程,可以去小编的Python交流.裙 :七衣衣九七七巴而五(数字的谐音)转换下可以找到了,里面很多新python教程项目,还可以跟老司机交流讨教!

Python一切皆对象对于函数式编程,以及Python各种高阶用法有很大帮助。 如果哪位道友还不是很清楚,那么多看看上面的图片,没事儿多看看,多看看不坏事儿。。。好了,话又开始多了

那么想必各位道友看到这里,已经对于Python一切皆对象有了比较清的认知,后续木子会更新一篇关于Python元类的博客,今天也算是做个铺垫。

备注:为何type类可以自身的实例,有兴趣的道友可以了解下指针的概念。

本文的文字及图片来源于网络加上自己的想法,仅供学习、交流使用,不具有任何商业用途,版权归原作者所有,如有问题请及时联系我们以作处理。

python 无法初始化设备prn_彻底搞懂Python一切皆对象,面试必过相关推荐

  1. python from. import失败_彻底搞懂Python 中的 import 与 from import

    以下文章来源&作者:青南(谢乾坤) 摄影:产品经理:kingname 的第一套乐高 你好,我是谢乾坤,前网易高级数据挖掘工程师.现任微软最有价值专家(Python 方向),有6年 Python ...

  2. python类的构造方法名称_搞懂Python的类和对象名称空间

    代码块的分类 python中分几种代码块类型,它们都有自己的作用域,或者说名称空间:文件或模块整体是一个代码块,名称空间为全局范围 函数代码块,名称空间为函数自身范围,是本地作用域,在全局范围的内层函 ...

  3. python怎么切片提取_彻底搞懂Python切片操作

    在利用Python解决各种实际问题的过程中,经常会遇到从某个对象中抽取部分值的情况,切片操作正是专门用于完成这一操作的有力武器.理论上而言,只要条件表达式得当,可以通过单次或多次切片操作实现任意切取目 ...

  4. 彻底搞懂 python 中文乱码问题_彻底搞懂 Python 编码 - sylan215的软件测试技术学习 - 51Testing软件测试网 51Testing软件测试网-软件测试人的精神家园...

    因为中文的特殊编码,导致 Python2 和 Python3 使用过程中的各种编码问题,如果不清楚其中的关联关系,那么这就一直是个大坑,不是懵逼就还是懵逼,所以就目前碰到的情况彻底梳理下 Python ...

  5. python数组类型_一文搞懂Python中的所有数组数据类型

    关于我 编程界的一名小小程序猿,目前在一个创业团队任team lead,技术栈涉及Android.Python.Java和Go,这个也是我们团队的主要技术栈. 联系:hylinux1024@gmail ...

  6. python输入时间_一文搞懂python日期时间处理

    前言 datetime是python的内置模块,用来处理日期和时间. 该模块常用的类有: 本文旨在讲解datetime模块中datetime类的使用方法. datetime对象是 date 与 tim ...

  7. python怎么安装re模块_搞懂python中的re模块

    现在介绍如何在Python中使用正则表达式. Python提供了re模块,用于实现正则表达式的操作. 通过使用re模块的方法进行字符串处理 re模块提供的方法(如search().match().fi ...

  8. python语言语句快的标记是什么_一文搞懂Python程序语句

    原标题:一文搞懂Python程序语句 程序流 Python 程序中常用的基本数据类型,包括: 内置的数值数据类型 Tuple 容器类型 String 容器类型 List 容器类型 自然的顺序是从页面或 ...

  9. 五分钟学会python函数_五分钟带你搞懂python 迭代器与生成器

    前言 大家周末好,今天给大家带来的是Python当中生成器和迭代器的使用. 我当初第一次学到迭代器和生成器的时候,并没有太在意,只是觉得这是一种新的获取数据的方法.对于获取数据的方法而言,我们会一种就 ...

最新文章

  1. 伸缩门遥控器c语言程序,急求求c++编程高手,求50的阶乘,要求结果是精确的整数,打印在屏幕上。...
  2. 数据结构例程——线性表顺序存储的应用
  3. STL的红与黑--rb_tree红黑树
  4. linux让脚本在指定时间运行程序,如何限制Linux命令程序运行的时间
  5. echarts图表的内边距_echarts——各个配置项详细说明总结
  6. php cdi_本机CDI限定词:@Any和@Default
  7. 压缩和解压文件:tar gzip bzip2 compress(转)
  8. 内存管理2(主讲MRR)
  9. 蒙特.卡罗方法求解圆周率近似值原理与Python实现
  10. html之css关于引入样式的优先级
  11. python 数据分析实践--(1)收入预测分析
  12. 以下哪些python数字是合法的_3 4j 是合法Python数字类型。
  13. Java物联网平台后端架构构思设计
  14. 大型体检系统源码 医院PEIS管理系统源码 BS架构
  15. Win系统 - WIN10 版本号说明
  16. Ubuntu设置dns
  17. 下列内容属于计算机房控制功能的是,前厅服务员中级理论知识试卷及答案2
  18. 运维工程师一天的日常都在做什么?
  19. 为listview、或者recyclerView的item增加进场动画
  20. 视频背景不好看?想要给视频里的人物抠出来换背景?教你轻松实现

热门文章

  1. java冒泡排序 快速排序_Java必备-冒泡排序,选择排序,快速排序(纯代码实现)
  2. Audio Playback过程
  3. Android查看支持硬编解码器(十五)
  4. Makefile.am、Makefile.in、Makefile、configure.ac关系(十二)
  5. 非均匀采样的kalman滤波
  6. MediaCodec 编码H264 编码一帧后dequeueOutputBuffer为-1的问题
  7. 深度学习自学(二十一):连续保存人脸检测、关键点检测后人脸状态-循环队列实现
  8. Zabbix 5.0使用方法探索及记录
  9. Vue打包时报错:ReferenceError: primordials is not defined
  10. Pytorch的一些损失函数