面向对象基本概念
- 函数式编程,使用函数去实现功能的编程方式
- 面向对象式编程,把功能封装在类的方法中,通过实例化对象去调用这些功能的编程方式
- 面向对象的步骤
- 定义类
- 类名称首字母大写&驼峰式命名
- 类都继承object
- 类里定义的函数叫做方法
- 每个方法的第一个参数是sel
- 实例化类
- 定义类
- 面向对象的理解
- 和面向对象相反的概念是面向过程式编程,就是按照流程一步一步写出来把实现的过程展现给使用者,而面向对象则是把过程给封装起来,不对外公布细节,只提供调用方法,让代码更加的简洁优雅
- 类,类本质就是几个有共同功能的函数的集合,用动物来类比的话,人就是一个类别,猫是另外一个类,不仅如此,汽车,卡车都可以是一个类,分类的角度不同,类也就不同,编程的类也是如此。比如说开发一个游戏时武器可以为一个类,它们有共同的属性(名字,尺寸,功能等)。玩家也可以是一个类,我们把这些对象封装到类里通过实例化进行调用
- 对象,上例中武器这个类,我们把它拿出来用(改变尺寸,功能,使用者等)的时候,这个武器就是一个对象,而我们使用它的过程在编程中就被称为实例化对象,只要经过这个步骤后才能引用类里面的方法
- 实例分析
class Car:
def __init__(self):
pass
def color(self):
c = black
print(c)
def models(self):
c = van
print(c)
c = Car()
c.color()
-
- __init__为python的初始化方法在实例化类的时候会自动执行
-
- c = Car()为实例化对象,此时的c就是一个对象,相当于在内存中创建了一辆车
-
- c.color()是获取这辆车的颜色
这就是面向对象创建一个类还有初始化类的过程,通过类封装数据和方法,再通过实例化对象去访问这些数据和方法
补充:
- self,本质上就是一个参数。这个参数是Python内部会提供,其实本质上就是调用当前方法的那个对象。
- 对象,基于类实例化出来”一块内存“,默认里面没有数据;经过类的
__init__
方法,可以在内存中初始化一些数据。
相关术语:
- 实例变量,属于对象,只能通过对象调用的变量,一般定义在初始化函数里。在定义类时,地址会给初始化方法分配一片地址空间,如果有默认数据的话则把默认数据放到这块空间,下例中会把”10“加载到这片空间,当实例化对象的时候,会把实例化时候传进来的参数也放进这片空间,也就是"tom","15"也放进了这片空间
class T
def __init__(self, n1, n2):
# 实例变量
self.other = "10"
self.name = n1
self.age = n2
def text(self):
print("text")
t = T("tom","15")
- 绑定方法,类里面不带任何装饰器的函数,简称方法。
- 执行绑定方法,通过实例化的对象.方法执行方法
t.txet()
总结
使用class定义类,
class的需要传递的参数写在_init_ 中,self代表创建的这个对象本身,
self.变量名代表引用这个类的变量,这样写的目的是在类的其它地方也能通过self调用到这个变量
要调用类中的方法或者数据,得先实例化对象
class 中的方法默认第一个参数都是self