面向对象三大特性:封装,继承,多态
封装:根据职责将属性和方法封装到一个抽象的类中
继承: 实现代码的重用,相同的代码不需要重复的编写
多态:不同的子类对象调用相同的父类的方法,产生不同的结果
两个重要的概念: 类和对象 类是具有相同特征和行为事物的统称,具有相似内部状态和运动规律的实体的集合 。对象是某一具体事物的存在,可以直接使用的。
类由类名,类属性,类方法三部分构成 定义类时 class 类名(object): 为新式类 不加object为经典类,类名的命名规则按照“大驼峰”规则命名,单词首字母大写。
对象的格式为: 对象名 = 类名() 在创建对象中, 魔法方法—init—方法是默认执行的,在init方法中可以直接设置对象的属性。
—str—也是魔法方法,它的作用是当使用print输出对象时,只要定义了str方法,那么就会打印从这个方法中return的数据。
如果有一个对象,当需要对其进行修改属性时,有两种方法 : 1:对象名.属性名 = 数据 (直接修改) 2:对象名.方法名() ---(间接修改) 为了更好的保护属性安全 可以将属性定义为私有属性,然后添加一个可以调用的方法供调用 注:私有属性时给属性前加两个—
创建对象后,python解释器默认调用init方法,当删除一个对象时,python解释器也会默认调用一个方法,这个方法为del()方法, del方法 程序结束后自动会调用
单继承 :在程序中,继承描述的是事物之间的所属关系,在定义类时,第一个类为基类,继承自object,子类继承父类时须在变量名后括号里写上父类名,父类的属性,方法都会继承给子类 但是注意:不能访问父类中的私有属性和方法。
多继承: 即子类有多个父类,并具有它们的特征 。多继承是在子类变量名后括号里写上多个父类名。
重写: 子类中,有一个和父类相同名字的方法,在子类中的方法会覆盖掉父类中同名的方法。如果想调用父类方法就要用到super().函数
我们通常也会把创建出来的对象叫做类的实例,创建对象的动作叫做实例化。对象的属性叫做实例属性,对象调用的方法叫做实例方法。 每一个对象都有自己独立的内存空间,保存各自不同的属性。多个对象的方法,在内存中只有一份,在调用方法时,需要把对象的引用传递到方法内部。
在python中,类是一个特殊的对象———类对象 类对象在内存中只有一份,使用一个类可以创建出很多个对象实例。类对象还拥有自己的属性和方法:类属性和类方法。 通过类名.的方式可以访问类属性或调用类方法。
在python中属性的获取存在一个向上查找机制,首先在对象内部查找对象属性,没有找到就会向上寻找类属性
网友评论