1.面向对象编程:object oriented programming, 简称OOP。OOP将对象作为程序的基本单元,一个对象包含了数据和操作数据的数据

2.面向对象和面向过程的区别

a.面向过程:面向过程的程序设计把计算机程序视为一系列的命令集合,即一组函数的顺序执行。为了简化程序设计,面向过程把函数继续切分为子函数,即把大块函数通过切割成小块函数来降低系统的复杂度。

# 面向过程
std1 = {'name': 'Tom', 'score': 98}
std2 = {'name': 'jimmy', 'score': 89}


def print_score(std):
    print('%s: %s' % (std['name'], std['score']))


print_score(std1)
print_score(std2)

b.面向对象:把计算机程序视为一组对象的集合,而每个对象都可以接收其他对象发过来的消息,并处理这些消息,计算机程序的执行就是一系列消息在各个对象之间传递

# 面向对象
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))


tom = Student('Tom', 98)
jimmy = Student('Jimmy', 89)
tom.print_score() 
jimmy.print_score()

在面向对象的思想中,Student会被视为一个对象,这个对象拥有name和score两个属性。打印一个学生的成绩首先要创建这个学生对应的对象,然后给对象发一个print_score的消息,让对象自己把自己的数据打印出来

3.类和实例:面向对象最重要的概念就是类(Class)和实例(Instance),类是抽象的模板,实例是根据类创建出来的一个个具体的’‘对象’‘,每个对象都拥有相同的方法,但各自的数据不一定相同。

a.类:在python中,通过关键字class定义类。clas后面紧接着是类名,类名是以大写开头的单词,紧接着就是(object),表示这个类是从哪个类继承下来的,通常如果没有合适的继承类,就使用object类,这是所有类最终都会继承的类

class Student(object):
    
    pass 

定义好类Student后,就可以根据Student类来创建出Student的实例,创建实例是通过类名+()实现的,可以自由地给一个实例变量绑定属性

tom = Student()
tom.name = 'Tom'

类可以起到模板的作用,可以在创建类的时候把必须绑定的属性强制填写进去。通过一个特殊的方法__init__(前后分别有两个下划线),可以把属性绑定name, score等属性绑定上去。__init__方法的第一个参数永远是self,表示创建的实例本身。用了__init__方法,在创建实例的时候,就不能传入空的参数了,必须传入与__init__方法匹配的参数,self不需要传,python会自己把实例变量传进去

class Student(object):

    def __init__(self, name, score):
        self.name = name
        self.score = score

和普通的函数相比,在类中定义的函数只有一点不同,就是第一个参数永远是实例变量self,调用时不用传递该参数。除此之外,类的方法和普通函数没有什么区别。

 

posted on 2019-04-16 22:10  zhanyie  阅读(146)  评论(0编辑  收藏  举报