Object-Oriented介绍
面向对象是一种非常重要的编程思想,把数据和操作放在一起,作为一个整体,称为对象。Python的面向对象和C++类似,也具有面向对象的三大特点,封装,继承和多态。
面向过程与面向对象
面向过程的编程思想
自上而下顺序执行,逐步求精。
程序结构按照功能分为若干模块,各部分相对独立。
每一模块内部均是由顺序,选择,循环三种基本结构。
程序流程在写程序时就已经确定。
面向对象的编程思想
把数据和操作放在一起,作为一个整体,称为对象。
对同类对象抽象出其共性,形成类。
类通过一个外部接口与外界操作。
程序流程在用户使用时决定。
Python面向对象应用
Python创建类
1 | # 类就是一种物体的总称,具有属性(成员变量)和行为(成员方法)两个特征。其本身并不占用内存空间,其实例化的对象占内存空间。 |
Python实例化对象
1 | class Person(object): |
Python访问对象属性
1 | class Person(object): |
Python访问对象方法
1 | class Person(object): |
Python类的构造函数
1 | # def __init__(self, 参数列表): 构造函数在使用类创建对象的时候自动调用,如果不显示的写出构造函数,默认自动添加一个空的构造函数 |
Python类的析构函数
1 | # def __del__(self): 析构函数在释放对象的时候自动调用,如果不显示的写出析构函数,默认自动添加一个空的析构函数 |
Python中类属性和对象属性
1 | class Person(object): |
Python类打印函数
1 | # def __str__(self): 在调用print打印对象时自动调用,是一个给用户使用的描述对象的方法,如果不显示的写出,默认返回类的名称和所处的内存地址 |
Python动态语言
1 | class Person(object): |
Python中动态添加限制
1 | from types import MethodType |
Python类中的共有和私有
1 | # __属性名/函数名 如果想让内部成员不被外部直接访问,在成员属性或方法前加__(两个下划线),但是在内部是可以使用的 |
Python类中的@property装饰器
1 | # 对私有成员想要便捷的访问和修改可以使用@property装饰器,相当于调用了get和set方法,可以让受限制的成员也能够直接使用.语法 |
Python类的单继承
1 | class Person(object): |
Python类的多继承
1 | class Father(object): |
Python类的多态
1 | class Animal(object): |
Python运算符重载
1 | # 为了使运算方便,有时需要进行运算符重载,典型的就是字符串的相加,1 + 2 = 3,但是字符串相加就是字符串的连接。 |
Object-Oriented小结
Object-Oriented面向对象是计算机语言中一种重要的思想,它的出现将程序员从一个执行者变成了一个管理者,程序员在使用时只需要知道能做什么,而不需要知道具体如何实现,而且每次创建对象时只需要一行代码,调用某一函数时也不需要关心内部的结构,大大减少了阅读代码的时间和内存的占用情况。因此面向过程是程序员的必经之路,需要熟练的掌握。