类和实例
1、类 (class):有属性有方法就是类。下面是 Student 类:
- 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))
- def get_grade(self):
- if self.score >= 90:
- return 'A'
- elif self.score >= 60 :
- return 'B'
- else:
- return 'C'
2、实例 (instance):具体的对象。下面是类 Student 创建的方法:
- Vincent = Student('Vincent', 100)
- Lisa = Student('Lisa', 80)
定义好了 Student 类,就可以用这个类创建具体的实例,如 Vincent,Lisa。
创建实例的时候必须把相关的属性填写进去。通过定义__init__方法,创建实例的时候,就把 name,score 属性绑定上去。每次创建实例,Python 会自动调用__init__方法,它也被成为构造函数。它的第一个参数永远是 self,self 不需要传入,Python 会自动把实例变量传进去。
- def __init__(self, name, score):
- self.name = name
- self.score = score
- Vincent = Student('Vincent', 100)
- Lisa = Student('Lisa', 80)
数据的封装
面向对象的另一个重要特点是数据的封装。在上面 Student 类的实例中,每个实例都自带 name 和 score 数据。我们可以通过函数来访问这些数据,比如打印成绩:
- def print_score(self):
- print('%s: %s'%(self.name,self.score))
既然
实例本身就拥有这些数据,要访问这些数据,就没有必要从外面的函数去访问,可以直接在
- Student
类的内部定义访问数据的函数,这样,就把 "数据" 给封装起来了。这些封装数据的函数是和
- Student
类本身是关联起来的,我们称之为类的方法。
- Student
Python 学习:面向对象 (OOP)
来源: http://www.bubuko.com/infodetail-2075395.html