1. 面向对象和面向过程
1.面向过程:核心是过程,是流水线
优缺点:
1.流程化,编写简单
2.可扩展性差
2.面向对象:核心是对象(对象:具有相同属性和动作的结合体)
优缺点:
1.可扩展行强
2.复杂度高于面向过程
总的来说:
面向对象适合大型项目 面向过程适合小型脚本
2.如何编写面向对象的程序(重点)
1.先创建类,归类,相当于图纸
语法:
class 类名:(类名首字母大写)
def __init__(self,name,age....) #构造方法,创建对象的时候自动访问,
self.name=name #self,自己,自身,当前正创建的
self.age=age #在创建谁,谁就是self 有python自动传递
def 方法名(self,参数)
方法体
2.创建对象
变量=类名(参数)
变量.特征="xx" 可以通过这样的赋值给对象设置属性,其中.代表的是什么的
3.对象的操作
1.访问对象的属性
对象.属性
print(c.name)
2.访问对象的方法
对象.方法() #对象具有什么方法就能调用什么方法
总的来说,类是对象的抽象描述,对象是类的实例化结果
3.面向对象的三大特征:
1.封装
1.对对象的封装(相同属性和动作)
2.对属性的封装self.xxx=xxx
2.继承
子类拥有父类中出私有方法外的方法
前提是先有父类后有子类
语法:
class 类名(父名1.父名2)
调用方法时还是先从自身找,再找父类的,父类根据排序的先后找
3.多态
同一个对象,拥有多种形态
例:
class Animal:
def dong(self)
print("动物可以动")
class Cat(Animal):
def chi(self)
print("猫会吃")
c=Cat()
c.chi()
c.dong()
结果:
猫会吃 #站在猫的角度上
动物可以动 #站在动物会动
c并不是通过Animal创建对象,但是c确实Animal中的一种