Python基础五-类及对象
一、面向对象编程
1、面向对象编程-Object Oriented Programming, 简称OOP,是一种程序设计思想。OOP将对象作为程序的基本单元,一个对象包含数据和操作数据的函数
面向过程的程序设计把计算机程序视为一系列的命令集合,即一组函数的顺序执行。为了简化程序设计,面向过程把函数继续切分为子函数,即把大块函数通过切割成小块函数来降低系统的复杂度。
面向对象的程序设计是将计算机程序视为一组对象的结合,每个对象都可以接受其他对象传递的消息,并处理消息,计算机程序的执行就是一系列消息在各个对象之间传递
在Python中,所有数据类型都可以视为对象,当然也可以自定义对象。自定义的对象数据类型就是面向对象中的类的概念。
如,我们要处理学生的成绩表,面向过程的程序可以用一个字典dict表示程序的:
std1 = {‘name’: ‘Curry’, ‘score’: 98}
std2 = {‘name’: ‘James’, ‘score’: 81}
处理学生成绩可通过函数实现,比如打印学生成绩
def print_score(std):
print(’%s: %s’ % (std[‘name’], std[‘score’]))
如果我们用面向对象的程序设计,我们考虑的不是程序执行流程,而是Student这种数据类型可以被视为一个对象,这个对象拥有name和score这两个属性(Property)。而要打印学生成绩,可以通过向这个对象传递一个打印成绩的消息即print_score,让对象自己打印数据即可
如:
class Student(object):
def __init__(self, name, score):
self.name = name
self.score = score
def print_score(self):
print('%s: %s' % (self.name, self.score))
向对象传递消息就是调用对象对应的关联函数,我们称之为对象的方法(Method)。面向对象的程序如下:
Tom = Student(‘Tom Simpson’, 69)
Jerry = Student(‘Jerry Simpson’, 87)
Tom.print_score()
Jerry.print_score()
面向对象的设计思想是从自然界来的,因为在自然界中,类(Class)和实例(Instance)的概念处处可见。Class是一种抽象的概念,比如我们定义的Class-Student,是指学生这个概念,而实例(Instance)则是一个个具体的Student,比如,Tom Simpson和Jerry Simpson是两个具体的Student
所以,面向对象的设计思想是抽象出Class,根据Class创建Instance.
面向对象的抽象程度又比函数要高 ,因为一个Class既包含数据,又包含操作数据的方法。
二、类和对象
面向对象编程非常重要的两个概念:类和对象
对象是面向对象编程的核心,使用对象的过程,为了将具有共同特征和行为的一组对象抽象定义,提出了另一概念-类
1、类
在自然界我们通常将具有相似内部状态和运动规律的实体的集合归为一类。而在程序设计中我们将具有相同属性和行为的事物统称为类,类是抽象的,在使用类时,我们通常会借助于这个类的一个 具体的存在。一个类可以有多个对象。
2、对象
某一个具体事物的存在,在现实世界中可以看得到,摸得到。可以直接使用
3、类和对象的关系
类就是创建对象的摸板
4、定义类和创建对象
定义一个类
格式:
class 类名:
方法列表
新式类:
class HelloWorld(object):
def info(self):
print(“HelloWorld”)
经典类:
class HelloWorld:
或
class HelloWorld():
说明:
定义类时有2种形式:新式类和经典类
object是Python里所有类的最顶级父类
类名的命名规则按照“大驼峰命名法"
info是一个实例方法,第一个参数一般是self, 表示实例对象本身,也可以将self换为其他的名字,其作用是一个变量,此变量指向了实例对象
python中,可以根据已经定义的类去创建一个 或多个对象
创建对象的格式
对象名1 = 类名()