发布于2019-08-08 09:36 阅读(1206) 评论(0) 点赞(5) 收藏(5)
前言:
是自己在学习python进阶IO学习视频的时候的理解和笔记,因为很多都是本菜鸟学习时候的自己的理解,有可能理解有误。
Content:
- 抽象的概念和面向对象的概念?想要大概了解python的面向对象需要注意哪些知识点?
- 由type、object、class来了解python对象的机制和特性
- python提供了哪些常用的内置类型?(被抽象成类)
一 抽象和面向对象和类
在python基础教程书中,有一章名字是抽象,在学习的时候,我还曾经把这里面抽象的概念和后面抽象基类的概念弄混淆。
1.抽象的概念
从具体事物抽出、概括出它们共同的方面、本质属性与关系等,而将个别的、非本质的方面、属性与关系舍弃,这种思维过程,称为抽象。 --baidu
在编程中,最简单的抽象概念就是计算机能理解的一步一步的计算步骤抽象成类或者函数来进行调用,方便人进行抽象理解也方便重用(过程抽象)。
最开始的编程历史中就和我们初学编程一样,都是过程抽象(结构化设计方法),但是经过发展慢慢发现仅仅是结构化设计已经满足不了我们了,于是有了对面向对象的需求。
2.面向对象的概念
面向对象是一种对现实世界理解和抽象的方法,是计算机编程发展到一定阶段后,产生的一种软件开发方法。 --baidu
面向对象中的对象:对象是人们要进行研究的任何事物,从最简单的整数到复杂的飞机等均可看作对象,它不仅能表示具体的事物,还能表示抽象的规则、计划或事件。 --baidu
https://baike.baidu.com/item/%E9%9D%A2%E5%90%91%E5%AF%B9%E8%B1%A1/2262089?fr=aladdin#2
三大特性:封装、继承、多态。
3.类的概念
具有相同特性和行为的对象的抽象就是类。对象的抽象是类,类的具体是对象。类有属性和操作。
4.python面向对象的设计
1、2、3中算是编程中的基本概念吧,python中的面向对象设计理念和其他静态语言还是有所区别的。
a)python面向对象方法中一些比较重要的知识点(不详解)
鸭子类型、抽象基类、继承的时候的查找算法和super函数、静态方法、类方法、实例方法、python的数据封装和私有属性
b)python中一切皆对象,类和函数也是对象。
c) 类和函数在python中作为对象有哪些特质?
- 可以赋值给一个变量
- 可以添加到集合对象中
- 可以作为参数传递给函数
- 可以当作函数的返回值
二 type、object和class
在看这段之前,需要先看python基础明白继承和实例的概念,还有父类和基类。
1.type可以用来返回一个对象的类型
a)当a是普通int、str类型时
这个结果很好玩,可以发现1的类型是int,int的类型是type。还有type的类型竟然也是type。
可以得出 type类生成了int类,int类(也是对象)生成了 a这个实例
也就是 type--》class--》object
b)如果当a是一个自定义类的时候呢?
a是Student类型,Student是type类型
所以可以得出 type是用来生成类对象的,所有的类都是type类。包括list、dict等也是的。
逻辑:类是type(自己也是个类)的对象,其他的类型是类生成的对象
2.object是所有类的基类,包括也是type这个类的基类
object是最顶层的基类,所有的类最后推到都是继承object类的。
三 python中常用的内置类型
对象在python中,有三个特征,身份、类型和值。
值:对象表示的数据项
其中类型的分类常用的有可迭代类型、不可迭代类型等、和其他序列类型、映射(mapping)、数值(int、float等)、集合、上下文管理等一系列类型。
查看type实现了哪些Type?可以用isinstance来判断这个对象是否属于这个基本类型。
>>> import types
>>> dir(types)
['AsyncGeneratorType', 'BuiltinFunctionType', 'BuiltinMethodType', 'CodeType', 'CoroutineType', 'DynamicClassAttribute', 'FrameType', 'FunctionType', 'GeneratorType', 'GetSetDescriptorType', 'LambdaType', 'MappingProxyType', 'MemberDescriptorType', 'MethodType', 'ModuleType', 'SimpleNamespace', 'TracebackType', '_GeneratorWrapper', '__all__', '__builtins__', '__cached__', '__doc__', '__file__', '__loader__', '__name__', '__package__', '__spec__', '_ag', '_calculate_meta', '_collections_abc', '_functools', 'coroutine', 'new_class', 'prepare_class']
>>> isinstance([], list)
True
>>> isinstance({}, dict)
True
这里藏着很重要的知识点鸭子类型和魔法函数~ 以后会慢慢深入了解的。
作者:高富帅
链接:https://www.pythonheidong.com/blog/article/12717/f10a379f90b4b5c4f880/
来源:python黑洞网
任何形式的转载都请注明出处,如有侵权 一经发现 必将追究其法律责任
昵称:
评论内容:(最多支持255个字符)
---无人问津也好,技不如人也罢,你都要试着安静下来,去做自己该做的事,而不是让内心的烦躁、焦虑,坏掉你本来就不多的热情和定力
Copyright © 2018-2021 python黑洞网 All Rights Reserved 版权所有,并保留所有权利。 京ICP备18063182号-1
投诉与举报,广告合作请联系vgs_info@163.com或QQ3083709327
免责声明:网站文章均由用户上传,仅供读者学习交流使用,禁止用做商业用途。若文章涉及色情,反动,侵权等违法信息,请向我们举报,一经核实我们会立即删除!