面向对象编程
以下引用自百度百科“面向对象程序设计”词条:
面向对象程序设计(Object Oriented Programming)作为一种新方法,其本质是以建立模型体现出来的抽象思维过程和面向对象的方法。模型是用来反映现实世界中事物特征的。任何一个模型都不可能反映客观事物的一切具体特征,只能对事物特征和变化规律的一种抽象,且在它所涉及的范围内更普遍、更集中、更深刻地描述客体的特征。通过建立模型而达到的抽象是人们对客体认识的深化。
面向对象程序设计以对象为核心,该方法认为程序由一系列对象组成。类是对现实世界的抽象,包括表示静态属性的数据和对数据的操作,对象是类的实例化。对象间通过消息传递相互通信,来模拟现实世界中不同实体间的联系。在面向对象的程序设计中,对象是组成程序的基本模块。
特点包括:封装性、继承性、多态性。
类
对象(Object) 指可以对其做事情的一些东西。一个对象有状态、行为和标识三种属性。
类(Class)是一个共享相同结构和行为的对象的集合。类定义了一件事物的抽象特点。通常来说,类定义了事物的属性和它可以做到的(它的行为)。举例来说,“狗”这个类会包含狗的一切基础特征,例如它的孕育、毛皮颜色和吠叫的能力。类可以为程序提供模版和结构。一个类的方法和属性被称为“成员”。
根据类来创建对象称为实例化,创建的对象是类的实例(Instance)。
创建类
以下模拟小狗来创建Dog类,它有名字和年龄属性,有坐下、打滚的行为。
class Dog:
'''模拟现实中的狗来创建类Dog'''
def __init__(self, name, age):
'''初始化属性name和age'''
self.name = name
self.age = age
def sit(self):
'''模拟狗坐下'''
print(f'{self.name}坐下了')
def roll_over(self):
'''模拟狗打滚'''
print(f'{self.name}打滚')
类的名称一般首字母大写。
类中的函数称为方法。
__init__()方法:类的初始化方法,init前后有两个下划线。当创建类的实例时,会自动运行该方法。
__init__()方法中的self形参是必选的参数,且必须放在首位。self是实例本身的引用。其它的参数可以根据需要设定,不限数量。
类中定义了sit()和roll_over()两个方法来模拟狗坐下和打滚动作。
创建实例
一个类可以创建多个实例。
dog1 = Dog('小白', 2) #实例化Dog类,实例名称为dog1
dog2 = Dog('旺才', 3) #实例化Dog类,实例名称为dog2
print(f'第一只狗名叫{dog1.name},{dog1.age}岁了。') #访问实例的属性
print(f'第二只狗名叫{dog2.name},{dog2.age}岁了。') #访问实例的属性
dog1.sit() #调用实例的方法,小白坐下
dog2.roll_over() #调用实例的方法,旺才打滚
'''执行结果:
第一只狗名叫小白,2岁了。
第二只狗名叫旺才,3岁了。
小白坐下了
旺才在打滚
'''