Oop编程
一 面向对象的定义:
面向对象是在结构化
设计
领导形象设计圆作业设计ao工艺污水处理厂设计附属工程施工组织设计清扫机器人结构设计
方法出现很多问题的情况下应运而生的。从结构化设计的方法中,我们不难发现,结构化设计方法求解问题的基本策略是从功能的角度审视问题域。它将应用程序看成实现某些特定任务的功能模块。而面向对象是以现实世界中存在的客体为问题的
主角,描述客体的属性和相关的行为。
二 python 面向对象的特点:
1 实现代码的重用:比如我们用的一些框架,或者第3方库很多都是用面向对象写的。
2 代码有利于调试
3 继承,并且可以多重继承。
4 运算符重载。
5 多态。
6 封装
三 类对象和实例对象的特点:
类对象:
1 本身class就是语句,它会产生类对象并且把对象的指针赋值给类的变量名,也是在文件第一次导入的时候执行。
2 提供对象的状态和行为,可以为所有的实例对象共享。
实例对象:
1 每次进行类调用的时候,都会建立并且返回新的实例对象。
2 每个实例对象的创建的时候,会继承类对象的属性,并且有自己的命名空间。
四 类的定义和调用:
__init__ 构造函数
__del__ 析构函数
类的属性和对象的属性
对象的方法:方法的第一个参数总是接受方法调用的隐性主体,也就是实例对象,self
例子写在代码里。
五 类的继承:
在python里面,我们通过代码建立对象树,而调用相关的实例的属性的时候,相当于爬树的概念。
继承的代码
继承关系是:实例对象继承类对象,类对象继承超类对象,超类对象的继承顺序是括号里面从左到右。
子类对象可以继承和覆盖超类对象的相关的方法和属性。
六 运算符重载:
我们可以通过类写成的对象来覆盖内置类型的运算,从而达到定制的目的。一般主要用在一些数学的对象。
特点:
1 以__x__命名。
2 出现内置运算是时候,方法会自动的调用。
3 可以覆盖很多内置的类型运算,这个大家可以查询下。
七 伪私有,静态方法和函数装饰器。
1 伪私有:定义 __属性或者方法,但是不是真正的私有,可以通过__dict__查看相关的属性,
然后来调用。
2 静态方法:静态方法调用的时候不需要实例参数。从内存占用上来说,静态的虽不需要实例化,但一直占用内存,所以访问速度较快,所以静态类不能太大太占资源。
而非静态类只有被实例化后才占内存,需要“调入”内存后才能执行。相对较慢。
3 函数装饰器:在函数的上面用@,可以在函数调用的时候,用装饰器的检查传入参数的类型,或者进行其他的操作。
当我们对某个方法应用了装饰方法后, 其实就改变了被装饰函数名称所引用的函数代码块入口点,使其重新指向了由装饰方法所返回的函数入口点。由此我们可以用decorator改变某个原有函数的功能,添加各种操作,或者完全改变原有实现。