8. Python面向对象编程

来源:互联网 发布:短信端口号查询 编辑:程序博客网 时间:2024/06/05 00:27

1. 面向对象的程序设计

类:某种类型集合的描述

属性:

     类本身的一些特性,如名字,身高,体重等属性

     属性具体值会根据每个人的不同而不同

方法:

     类所能实现的行为,吃饭,走路,睡觉等方法

2. 类的定义

class classname[{父类名}]:  ——  classname这个类的名称,父类名是可选的,子类拥有父类的响应属性和方法

 [成员函数及成员变量]

类定义对象:

  _init_构造函数:初始化对象

  _del_析构函数:销毁对象

3. 实例


学生成绩:


# 找到GPA最高的学生 class Student:    def __init__(self, name, hours, qpoints):        self.name = name        self.hours = float(hours)        self.qpoints = float(qpoints)         def getName(self):        return self.name         def getHours(self):        return self.hours         def getQPoints(self):        return self.qpoints         def gpa(self):        return self.qpoints/self.hours     def makeStudent(infoStr):    name, hours, qpoints = infoStr.split("\t")    return Student(name, hours, qpoints)     def main():    # 打开输入文件    filename = input("Enter name the grade file: ")    infile = open(filename, 'r')    # 设置文件中第一个学生的记录为best    best = makeStudent(infile.readline())     # 处理文件剩余行数据    for line in infile:        # 将每一行数据转换为一个记录        s = makeStudent(line)        # 如果该学生是目前GPA最高的,则记录下来        if s.gpa() > best.gpa():            best = s    infile.close()     # 打印GPA成绩最高的学生信息    print("The best student is:", best.getName())    print("hours:", best.getHours())    print("GPA:", best.gpa()) if __name__ == '__main__':    main()
结果: