面向对象最重要的两个概念就是 类(class)和 实例(Instance),类是抽象的模板(好比数学公式),而实例是根据类创建出来的’对象‘(好比用数学公式解出来的题)
还以上面的例子,在Python中,定义类通过class关键字:
class Student(object):
pass
class后面跟着的是类名,Student,类名大写字符开头,后面紧跟着(object),这表示这个类来自哪里,括号里面的object可以不写
定义好了Student类,可以创建出Student的实例,创建实例通过类名+()现实:
yang = Student()
这时候可以自由的给一个实例绑定属性
yang.name = ‘yangaoteng‘
yang.score = 1000
由于类有的时候会起到模板的作用,我们可以在创建实例的时候,把我们一些任务必须绑定的属性填写进去。我们可以通过一个特殊的 __ init __(前后个有两个_),在创建实例的时候,就可以把 name , score 等属性绑定上去:
class Student():
def __init__(self,name,score):
self.name = name
self.score = score
__ init __ 方法的第一个参数永远是self,self表示创建的实例本身
有了__ init__ 方法,在创建实例的时候,就不能传入空的函数了,必须传入与__ init __ 方法匹配的参数,但self不需要传,Python解释器会自动上传进去。
>>> yang = Student(‘yangaoteng‘,100)
>>> yang.name
’yangaoteng‘
>>> yang.score
59
做到这里我们就可以搞事情了,我们可以对数据进行分类,大于90分的成绩为’A‘....,进行男女的分类。等等,对数据进行处理
# 创建一个实例,对男女进行分类,对‘成绩进行分类’
class Student():
def __init__(self,name,score,sex):
self.name = name
self.score = score
self.sex = sex
def Student_score(self):
a=‘男‘
if self.sex ==‘男‘:
a= ‘男‘
elif self.sex == ‘女‘:
a= ‘女‘
if self.score >=80:
print(‘姓名{0},性别{1},成绩A‘.format(self.name,a))
elif self.score >=60:
print(‘姓名{0},性别{1},成绩B‘.format(self.name,a))
elif self.score >=0:
print(‘姓名{0},性别{1},成绩C‘.format(self.name,a))
else:
print(‘666‘)