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中的属性设置是针对对象本身进行的


你可能感兴趣的:(python面向对象)