python面向对象

面向对象(Oject Oriented,OO)概念

面向过程:根据业务逻辑按照自上而下顺序;
函数式:将某功能代码封装到函数中,日后便无需重复编写,仅调用函数即可;
面向对象:对函数进行分类和封装,让开发“更快更好更强…”
面向对象,是一种程序设计思想;
类:对具有相同数据和方法的一组对象的描述或定义。
对象:对象是一个类的实例。
实例(instance):一个对象的实例化实现。
类是对现实生活中一类具有共同特征的事物的抽象。

类的基本定义

 基本形式:
        class ClassName(object):
                   Statement

1.class 定义类关键字;
2.ClassName类名,类名的每个单词的首字母大写(驼峰命名规则);
3.object是父类名,object是一切类的基类。在python3中如果继承类是基类可以省略不写。

类的实例化

实例对象名 = 类名(参数)
在实例化的过程中,self代表的就是这个实例对象自己。
实例化时会把类名后面接的参数传进去赋值给实例,这样传进去的参数就成为了这个实例对象的属性。
实例化的过程遵循函数调用的原则。
在实例化时也必须个数和顺序与定义时相同(使用关键字参数可以改变传参的顺序),当初始化函数定义时使用了默认参数时,在实例化时默认参数可以不传参这时,这个实例对象就会使用默认的属性,如果传了参数进去则会改变这参数值, 使实例化对象的属性就为你传进来的这个参数。

isinstance(实例名,类名)        判断一个实例是不是这个类的实例。

类和对象在内存中是如何保存?
类以及类中的方法在内存中只有一份,而根据类创建的每一个对象都在内存中需要存一份,大致如下图:

类和实例的属性

总结:
实例属性:
a.在__init__(self,…)中初始化;
b.内部调用时都需要加上self.;
c.外部调用时用实例化对象.属性名;
注:如果没在init中定义属性,实例属性并不一定要在类中显示定义,可在外部用实例化对象.属性方式创建实例属性,

类属性:
a.在__init__()外初始化;
b.内部调用时需要用类名.类属性调用;
c.外部调用既可用类名.类属性,又可用实例化对象.属性名调用;

.说明:一般,方法第一个参数被命名为self,,这仅仅是一个约定,self没有特殊含义,程序员遵循这个约定。查看类中的属性和实例属性可以调用__dict__方法返回属性组成的字典。Python中属性的获取是按照从下到上的顺序来查找属性。Python中的类和实例是两个完全独立的对象。Python中的属性设置是针对对象本身进行的


最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • Python 面向对象Python从设计之初就已经是一门面向对象的语言,正因为如此,在Python中创建一个类和对...
    顺毛阅读 9,675评论 4 16
  • 国家电网公司企业标准(Q/GDW)- 面向对象的用电信息数据交换协议 - 报批稿:20170802 前言: 排版 ...
    庭说阅读 13,915评论 6 13
  • 一、面向对象,这个对象到底是什么? 这个对象不是python中的实例,python中我们把一个类的实例也叫做对象,...
    youngkun阅读 4,562评论 0 2
  • 类 类(Class)是对某种类型的对象定义变量和方法的原型。它表示对现实生活中一类具有共同特征的事物的抽象,是面向...
    Sunnky阅读 3,165评论 0 2
  • 呵呵,时间真快,浑浑噩噩的在这里度过了两个元宵节了,不想自怨自艾了。今天天气似乎很称我心呢,上班的时候就没有...
    流颏阅读 1,054评论 0 0

友情链接更多精彩内容