1、面向过程和面向对象:
(1)面向过程:针对结果编程,流水线式思维,得出固定的结果。优点是好想,但是扩展性差,容易引起安全问题
(2)面向对象:对象就是一个实实在在的,可以准确描述出来的实体
2、定义类
类:具有相同属性和方法的一类事物
对象:具有具体的属性
class 类名 :这就是定义了一种类,类名一般首字母大写
role = 'assddff' 这就是第一了一种类属性
def 函数名(self): 这就是定义了一种类方法(动态属性),本质就是函数,有一个必须传递的参数self
3、实例化一个对象
实例化:从类到对象的过程
对象名 = 类名() 这就得到了一个具体的对象
4、调用类方法
对象名.方法名(也就是函数名)() 调用类方法,自动传递参数,这个参数就是对象本身
5、_ _init_ _函数
def _ _init_ _(self,参数1,参数2,参数3,....)
self.变量名 = 参数1
self.变量名 = 参数2
self.变量名 = 参数3 这里的self相当于字典,self.变量名相当于key,先这么理解
怎么用这个_ _init_ _函数:
对象名 = 类名(参数1,参数2,参数3,...)这样就会自动调用_ _init_ _函数
6、类属性和对象属性
类属性:直接写在类里面的,类名和对象名都可以直接用.属性名调用,
对象属性:写在init里面的self.变量名,只能对象名调用
7、面向对象的交互
对象属性(函数)里加参数,这样就可以实现不同对象(甚至是不同类对象)之间的交互
注意:
1、不要用对象去调用类属性
2、写面向对象的时候先要搞清楚哪些时一类,哪些是对象,哪些是对象属性
3、面向对象什么时候用:
(1)要用到很多角色,某一类拥有相同的特点或者说是属性
(2)需要反复取传递多个参数
举例:
import mathclass Circle(): #定义类 role='circle' #类属性 def __init__(self,r): self.r=r #对象属性 def area(self): #动态属性 print(math.pi*self.r**2) def per(self): print(math.pi*self.r*2)whl=Circle(3) #实例化对象whl.area() #调用方法,self就是whlwhl.per()