python中class用法实例

本文介绍了一个使用Python类和函数的实例,通过读取学生信息文件,找出GPA最高的学生并打印其详细信息。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

python中class用法实例

https://blog.youkuaiyun.com/u010551600/article/details/79126911

该程序的作用是找到studet.txt文件中,GPA最高的那名同学,并打印出他的信息。
程序运行的结果是:
在这里插入图片描述
首先建立一个student.txt文件,里面存储的是学生的信息

zhangsan 127 228
lisi 100 400
wangwu 18 41.5
maliu 48.5 155
sunqi 37 125.33

#定义一个类,类的名字为Student.在__init__函数中self为对象本身,name、hours、qpoints为函数的处理所面对的对象。
#__init__函数的作用是初始化对象
#接下来定义getName函数——返回self.name对象
#getHour函数——返回self.hours对象
#getQpoints函数——返回self.qpoints对象
#gpa函数——返回self.qpoints/self.hours对象
#所以,一旦调用这些函数,将返回对应的对象

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

#定义一个名为makeStudent的函数
#用split函数将一个字符串分裂成多个字符串组成的列表。split()不带参数时,以空格进行分割,当带参数时,以该参数进行分割。
#当调用该函数时,用split函数分裂成3个部分,每一部分分别对应name、hours和qpoints.并把这些值进行返回。

def makeStudent(infoStr):
    name,hours,qpoints=infoStr.split(" ")
    return Student(name, hours, qpoints)

#定义主函数
#把student.txt文件映射到filename这个变量下面。打开之后的filename文件,再映射到infile变量下面。
#调用makeStudent函数(调用makeStudent函数之后返回的是3部分,分别对应name、hours和qpoints)并把返回值映射到best这个字符串之下。
#readline函数的作用是,每次读出一行内容,所以best里存放的是student中第一个学生的信息。
#for line in infile——对剩余的学生的信息进行处理,用if语句和第一个信息进行对比,如果大于第一个的话,则把它赋值给best.
#close函数,close()用于关闭一个已经打开的文件,使用close()方法关闭文件是一个好的习惯。
#print函数:print(“the best student is:”,best.getHours()是在best这个对象下调用getHours这个函数。

def main():
    filename="student.txt"
    infile=open(filename,'r')
    best=makeStudent(infile.readline())
    for line in infile:
        s=makeStudent(line)
        if s.gpa()>best.gpa():
	        best=s
    infile.close()
 
    print("The best student is:",best.getName())
    print("hours:",best.getHours())
    print("GPA:",best.gpa())

#执行该模块中的函数
#方法是:用一个if name=="main"这个语句

if __name__=='__main__':
    main()
### Python (`class`) 的用法详解 #### 1. 定义的基本结构 在 Python 中,定义一个的关键字是 `class`。以下是创建的一般语法: ```python class ClassName: """的文档字符串""" # 属性 class_attribute = value def __init__(self, parameter_list): """初始化方法,用于设置实例属性""" self.instance_attribute = parameter_list def method_name(self, parameters): """普通方法,操作实例的状态""" pass ``` 其中,`__init__` 是特殊的构造方法,在创建新对象时自动调用[^1]。 #### 2. 创建实例 当定义好一个之后,可以通过简单的赋值语句来创建它的实例: ```python obj = ClassName(arguments_for_init_method) ``` #### 3. 访问属性和方法 一旦有了的一个实例,就可以通过点号`.`访问其属性或者调用方法: - **访问实例属性**: `obj.instance_attribute` - **调用实例方法**: `obj.method_name(parameters)` - **访问属性**: `ClassName.class_attribute` 或者 `obj.class_attribute` #### 4. 实例化与继承机制 Python 支持单继承以及多重继承。子可以覆盖父的方法也可以增加新的功能。这里有一个简单例子展示如何实现继承关系: ```python class ParentClass: parent_class_var = "Parent Variable" def say_hello(self): print("Hello from Parent") class ChildClass(ParentClass): # 子继承自父 child_class_var = "Child Variable" def greet(self): super().say_hello() # 调用父方法 print("Greeting from Child") child_obj = ChildClass() child_obj.greet() # 输出 Hello from Parent 和 Greeting from Child print(child_obj.parent_class_var) # 输出 Parent Variable ``` #### 5. 特殊方法(魔术方法) 除了常规方法外,Python 还提供了一些特殊命名的方法(称为“魔术方法”),它们允许我们定制的行为。比如前面提到过的 `__init__` 就是一个典型的例子。其他常用的还有: - `__str__`: 控制打印对象时的表现形式。 - `__len__`: 自定义长度计算方式。 - `__add__`, `__sub__`, etc.: 定义算术运算符行为。 例如: ```python class Vector: def __init__(self, x=0, y=0): self.x = x self.y = y def __repr__(self): return f'Vector({self.x}, {self.y})' v1 = Vector(2, 4) print(v1) # 输出 Vector(2, 4) ``` --- ### 总结 以上就是关于 Python的基础介绍及其一些高级特性的概述。理解这些基础知识对于掌握面向对象编程至关重要[^2]。
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值