python的类和对象_Python类与对象实验

一、任务描述

本实验任务主要对Python类与对象进行一些基本操作,通过完成本实验任务,要求学生熟练掌握Python类与对象的关系,并对Python类与对象的基本操作进行整理并填写工作任务报告。

二、任务目标

1、掌握Python类的创建

2、掌握类对象

三、任务环境

Ubuntu16.04、Python2.7

四、任务分析

面向对象最重要的概念就是类(Class)和实例(Instance),必须牢记类是抽象的模板,比如Student类,而实例是根据类创建出来的一个个具体的“对象”,每个对象都拥有相同的方法,但各自的数据可能不同。

♥ 温馨提示

类是对象的模板或蓝图,类是对象的抽象化,对象是类的实例化。类不代表具体的事物,而对象表示具体的事物。

五、任务实施

步骤1、环境准备

右击Ubuntu操作系统桌面,从弹出菜单中选择【Open in Terminal】命令 打开终端。

通过【cd /home】切换到home目录下。【ls】查看该目录下的所有内容。

5a302c4cf1dba.png图1 切换目录

【mkdir class】在home目录下创建class文件夹。

5a303048bc361.png图2 创建文件夹

步骤2、类

【cd class】切换到class目录下,【vim class1.py】回车后创建并编辑名为class1的Python文件

5a3030a59a1da.png图3 创建Python文件

回车后进入编辑框内,按键盘【i】进入编辑状态,输入如下程序。

在Python中,定义类是通过class关键字。class后面紧接着是类名,即Brid,类名通常是大写开头的单词,紧接着是(object)。

用class关键字定义一个类,类名为鸟(Bird)。括号内的关键object,也就是‘东西’的意思。既某一个个体也为对象。一个类别下,可以有多个对象。

5a30519fa55e3.png图4 编辑Python文件

直接定义在类内部的属性为类属性,为这个类对象所有,所有类的实例可以访问。定义两个量,一个用于说明鸟类有羽毛(feather),另一个用于说明鸟类的繁殖方式(reproduction),这两个量成为类的属性。

5a3051f019778.png图5 类属性

除了用属性来分辨类别外,也可以根据这类东西可以做什么来区分,比如鸟会飞,这样的一些行为属性成为方法。通过在类的内部定义函数来说明方法。

在鸟类中新增一个方法属性,表示鸟叫的方法chirp(),第一个参数是self,为了在方法内部引用对象自身。

5a30546480b80.png图6 方法

步骤3、对象

通过调用类,可以创造出这个类的对象。

说明summer属于鸟类的一个对象。

5a3059f28bf35.png图7 创建对象

作为对象的summer将拥有鸟类的属性和方法。对属性的引用是通过对象.属性的形式实现的。

5a3059fd18cec.png图8 调用类属性

编辑完毕后,按【esc】退出编辑状态,【:wq】保存并退出编辑框,【python class1.py】执行class1的Python文件。

打印‘egg’,得到summer所属类的繁殖方式。

5a305a243d4db.png图9 运行Python文件

也可以调用方法,让summer执行鸟类允许的动作。

再次进入class1.py文件编辑状态,修改程序。

5a305a7a8f7b1.png图10 编辑Python文件

再次运行class1.py程序。打印‘jijiji’。

在调用方法时,只传递一个参数,就是字符创‘jijiji’,self只用在类定义的内部,所以调用方法时不需要对self传入数据。

5a305b0a42a42.png图11 运行Python文件

对于全部个体来说,某些属性存在个体差异,比如summer是黄色的,但并非所有的鸟都是黄色的,除了共性的属性外,还需要说明个性的对象属性,可以通过self来操作对象的属性。

再次进入class1.py文件编辑状态,修改程序。

在set_color方法中,通过self参数设定对象属性color,和类属性一样,通过对象.属性的方式来操作对象属性,由于对象属性依赖于self,所以对象属性没办法像类属性一样,在类下方赋值。

5a305c55ccc36.png图12 编辑Python文件

再次运行class1.py程序。打印‘yellow’。

5a305e82ad41f.png图13 运行Python文件

Python提供了初始化对象属性的方法,如__init__()、__add()__等,可以在类中设定特殊方法,__init__()方法会在每次创建对象时自动调用。

再次进入class1.py文件编辑状态,修改程序。

通过__init__()说明类的初始化方式。当对象建立时,__init__()会被调用,设定了sound的对象属性,在chirp()方法中,就可以通过self调用对象属性。

5a30605e63847.png图14 编辑Python文件

再次运行class1.py程序。

5a3060a95b839.png图15 运行Python文件

self参数除了操作对象属性外,还可以在一方法内部调用同一类的其他方法。

再次进入class1.py文件编辑状态,修改程序。

5a3062ebd6d35.png图16 编辑Python文件

再次运行class1.py程序。重复打印‘jijiji’5次。

5a306318565f5.png图17 运行Python文件

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
Python是一种面向对象的编程语言,类与对象Python中的重要概念。为了深入理解类与对象的应用,我们进行了一次实验实验目的: 掌握类与对象的概念,能够熟练运用类与对象进行编程。 实验过程: 我们编写了一个学生信息管理系统,用于记录学生的姓名、年龄、性别、成绩等信息。在该系统中,我们定义了一个Student类,用于存储学生信息。具体实现如下: ``` class Student: def __init__(self, name, age, sex, score): self.name = name self.age = age self.sex = sex self.score = score def get_name(self): return self.name def get_age(self): return self.age def get_sex(self): return self.sex def get_score(self): return self.score ``` 在该类中,我们定义了四个属性:姓名、年龄、性别、成绩,并通过构造函数__init__进行初始化。同时,我们还定义了四个方法get_name、get_age、get_sex、get_score,用于获取学生的姓名、年龄、性别、成绩。 接下来,我们编写了一个学生信息管理程序,用于添加、删除、修改和查询学生信息。具体实现如下: ``` class StudentManager: def __init__(self): self.students = [] def add_student(self, name, age, sex, score): student = Student(name, age, sex, score) self.students.append(student) def remove_student(self, name): for student in self.students: if student.get_name() == name: self.students.remove(student) break def modify_student(self, name, age, sex, score): for student in self.students: if student.get_name() == name: student.age = age student.sex = sex student.score = score break def query_student(self, name): for student in self.students: if student.get_name() == name: print("姓名:{}\n年龄:{}\n性别:{}\n成绩:{}".format(student.get_name(), student.get_age(), student.get_sex(), student.get_score())) break ``` 在该类中,我们定义了一个students列表,用于存储所有学生信息。同时,我们还定义了四个方法add_student、remove_student、modify_student、query_student,用于添加、删除、修改和查询学生信息。其中,添加学生信息时,我们通过Student类创建一个新的学生对象,并将其添加到students列表中;删除学生信息时,我们通过遍历students列表找到对应的学生对象,并将其从students列表中删除;修改学生信息时,我们通过遍历students列表找到对应的学生对象,并修改其属性值;查询学生信息时,我们通过遍历students列表找到对应的学生对象,并输出其属性值。 最后,我们编写了一个测试程序,用于测试学生信息管理系统的功能。具体实现如下: ``` if __name__ == '__main__': manager = StudentManager() manager.add_student("张三", 18, "男", 90) manager.add_student("李四", 19, "女", 85) manager.add_student("王五", 20, "男", 95) manager.query_student("张三") manager.modify_student("张三", 20, "女", 95) manager.query_student("张三") manager.remove_student("张三") manager.query_student("张三") ``` 在该程序中,我们首先创建一个StudentManager对象,然后添加了三个学生信息,查询了张三的信息,修改了张三的信息,删除了张三的信息,并再次查询张三的信息。 实验结果: 经过测试,我们发现学生信息管理系统的功能正常,能够正确地添加、删除、修改和查询学生信息。 实验分析: 通过这次实验,我们深入理解了类与对象的概念,并掌握了如何运用类与对象进行编程。同时,我们还学习了如何通过类的构造函数进行初始化,如何通过对象的方法获取属性值,以及如何通过列表存储对象等知识。这些知识将在今后的Python编程中起到重要作用。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值