编程范式即编程的方法论,表示一种编程风格,没有高低之分
- 面向过程:流水线,一旦完成基本很少改变的场景
- 函数式
- 面向对象:高扩展性
类:把一类事物的相同特征和动作整合到一起的就是类,类是一个抽象的概念
对象:就是基于类而创建的一个具体的事物
实例化:由类生产对象的过程称之为实例化,类实例化的结果是一个对象或一个实例
【注!用面向对象语言写程序和一个程序的设计是面向对象的,两者是八竿子打不着的两码事】
类的定义语法
Class 类名:
'类的文档信息'
类体
# 实例化
var_name = 类名()
属性
1.数据属性:变量
2.函数属性:通称称之为方法
__dict__:查看属性字典
类和对象均用点来访问自己的属性,本质就去属性字典里查找
python中所有的类都有共同的祖先类:object
__name__ | 类的名字 |
__doc__ | 类的文档字符串 |
__base__ | 类的第一个父类 |
__bases__ | 类的所有父类构成的元组 |
__dict__ | 类的属性 |
__module__ | 类定义所在的模块 |
__class__ | 类的类型,返回<type 'type'> |
实例化的过程实际就是执行__init__的过程,这个函数内部只是为实例本身即self设定了一堆数据,所以实例只有数据属性,给实例绑定属性的方法是通过实例变量,或者通过self变量
直接在class中定义属性,这种属性是类属性,归类所有,但类的所有实例都可以访问到
【实例属性优先级大于类属性】
del 删除类、实例属性
通过点.来调用得到的要么是实例属性,要么是类属性
【不要通过__dict__[]=''的方法修改底层的属性字典】
总结
- 实例属性属于各个实例所有,互不干扰
- 类属性归于类所有,所有实例共享一个属性
- 不要对实例属性和类属性使用相同的名字,否则将产生难以发现的错误
【输入、输出不要写到函数中,函数只写逻辑】
面向对象分析➡设计➡编程➡测试➡维护