python编程-12:类的定义-面向对象

举报
彭世瑜 发表于 2021/08/14 00:56:41 2021/08/14
【摘要】 类:某种类型集合的描述。举例:人 属性 类本身的一些特性,如名字、身高和体重等属性 属性具体值则会根据每个人的不同而不同; 方法 类所能实现的行为,如吃饭、走路和睡觉等方法。 类的定义 class classname[(父类名)]:[成员函数及成员变量]...
:某种类型集合的描述。举例:人

属性
类本身的一些特性,如名字、身高和体重等属性
属性具体值则会根据每个人的不同而不同;

方法
类所能实现的行为,如吃饭、走路和睡觉等方法。

类的定义
class classname[(父类名)]:[成员函数及成员变量]
_init_构造函数:初始化对象的各属性
_del_析构函数:销毁对象

源代码:
  1. # 找到GPA最高的学生
  2.  
  3. class Student:
  4.     def __init__(self, name, hours, qpoints):
  5.         self.name = name
  6.         self.hours = float(hours)
  7.         self.qpoints = float(qpoints)
  8.      
  9.     def getName(self):
  10.         return self.name
  11.      
  12.     def getHours(self):
  13.         return self.hours
  14.      
  15.     def getQPoints(self):
  16.         return self.qpoints
  17.      
  18.     def gpa(self):
  19.         return self.qpoints/self.hours
  20.      
  21. def makeStudent(infoStr):
  22.     name, hours, qpoints = infoStr.split("\t")
  23.     return Student(name, hours, qpoints)
  24.      
  25. def main():
  26.     # 打开输入文件
  27.     filename = input("Enter name the grade file: ")
  28.     infile = open(filename, 'r')
  29.     # 设置文件中第一个学生的记录为best
  30.     best = makeStudent(infile.readline())
  31.  
  32.     # 处理文件剩余行数据
  33.     for line in infile:
  34.         # 将每一行数据转换为一个记录
  35.         = makeStudent(line)
  36.         # 如果该学生是目前GPA最高的,则记录下来
  37.         if s.gpa() > best.gpa():
  38.             best = s
  39.     infile.close()
  40.  
  41.     # 打印GPA成绩最高的学生信息
  42.     print("The best student is:", best.getName())
  43.     print("hours:", best.getHours())
  44.     print("GPA:", best.gpa())
  45.  
  46. if __name__ == '__main__':
  47.     main()

文章来源: pengshiyu.blog.csdn.net,作者:彭世瑜,版权归原作者所有,如需转载,请联系作者。

原文链接:pengshiyu.blog.csdn.net/article/details/81049394

【版权声明】本文为华为云社区用户转载文章,如果您发现本社区中有涉嫌抄袭的内容,欢迎发送邮件进行举报,并提供相关证据,一经查实,本社区将立刻删除涉嫌侵权内容,举报邮箱: cloudbbs@huaweicloud.com
  • 点赞
  • 收藏
  • 关注作者

评论(0

0/1000
抱歉,系统识别当前为高风险访问,暂不支持该操作

全部回复

上滑加载中

设置昵称

在此一键设置昵称,即可参与社区互动!

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。