各地美食小吃培训(阿意美食小吃培训)快来看
信息来源:互联网 发布时间:2023-10-23
本文的文字及图片来源于网络,仅供学习、交流使用,不具有任何商业用途,版权归原作者所有,如有问题请及时联系我们以作处理本文章来自腾讯云 作者:背雷
本文的文字及图片来源于网络,仅供学习、交流使用,不具有任何商业用途,版权归原作者所有,如有问题请及时联系我们以作处理本文章来自腾讯云 作者:背雷管的小青年一、目的与要求1、了解面向对象编程思想,掌握类和对象的定义和使用。
2、熟悉self的使用技巧,掌握构造方法的使用3、了解如何使用封装保护属性,掌握单继承和多继承的使用4、掌握类属性和实例属性的使用,熟悉类方法和静态方法的使用技巧二、原理在程序中使用对象来映射现实中的事物,使用对象间的关系来描述事物之间的联系,这种思想就是面向对象。
面向对象编程有两个非常重要的概念:类和对象对象是面向对象编程的核心具有相似特征和行为的事物的集合统称为类,对象是根据类创建的,一个类可以对应多个对象类是由3部分组成的:(1)类的名称:类名,首字母必须大写,比如Person;(2)类的属性:一组数据,比如性别;(3)类的方法:允许进行操作的方法,比如说话。
使用class关键字来声明一个类,基本格式如下:class 类名:类的属性类的方法根据类创建对象的语法格式如下:对象名 = 类名()要想给对象添加属性,可以通过如下方式:对象名.新的属性名 = 值构造方法指的是__init__方法。
当创建类的实例的时候,系统会自动调用构造方法,从而实现对类进行初始化的操作当删除一个对象来释放类所占用资源的时候,Python解释器默认会调用另外一个方法,这个方法就是__del__()方法__del__方法被称为析构方法。
在方法的列表中,第1个参数永远都是selfself的字面意思是自己,我们可以把它当做C++里面的this指针理解,表示的是对象自身当某个对象调用方法的时候,Python解释器会把这个对象作为第1个参数传给self,开发者只需要传递后面的参数就可以了。
运算符重载是通过实现特定的方法使类的实例对象支持Python的各种内置操作例如:+运算符是类里提供的__add__这个函数,当调用+实现加法运算的时候,实际上是调用了__add__方法加法运算是通过调用__add__方法完成重载的,当两个实例对象执行加法运算时,自动调用__add__方法。
跟索引相关的重载方法包括如下3个:getitem:索引、分片;setitem:索引赋值;delitem:索引和分片删除在对实例对象执行索引、分片或者for迭代操作时,会自动调用__getitem__方法;通过赋值语句给索引或者分片赋值时,调用__ setitem __方法实现对序列对象的修改;当调用del方法时,实质上会调用__delitem__方法实现删除操作。
为了保护类里面的属性,可以采用如下方式解决:1.把属性定义为私有属性,即在属性名的前面加上两个下划线;2.添加用于设置或获取属性值的两个方法供外界调用此即为封装在程序中,继承描述的是事物之间的所属关系类的继承是指在一个现有类的基础上构建一个新的类,构建出来的新类被称作子类。
Python程序中,继承使用如下语法格式标注:class 子类名(父类名):Python支持多继承,多继承就是子类拥有多个父类,并且具有它们共同的特征,即子类继承了父类的方法和属性多继承可以看做是单继承的扩展,语法格式如下:。
class 子类名(父类1,父类2…):如果子类继承的多个父类间是平行的关系,子类先继承的哪个类就会调用哪个类的方法在继承关系中,子类会自动拥有父类定义的方法,但是有时子类想要按照自己的方式实现方法,即对父类中继承来的方法进行重写,使得子类中的方法覆盖掉跟父类同名的方法。
需要注意的是,在子类中重写的方法要和父类被重写的方法具有相同的方法名和参数列表在Python中,多态指在不考虑对象类型的情况下使用对象,它不关注对象的类型,而是关注对象具有的行为类属性是类所拥有的属性,它需要在类中进行显示的定义(位于类内部,方法的外面),它被所有类的实例对象所共有,在内存中只存在一个副本。
通过“实例.属性”添加属性的属性都是实例属性使用修饰器@classmethod来标识类方法。要想调用类方法,既可以通过对象名调用类方法,又可以通过类名调用类方法,这两种方法没有任何区别。
三、预习与准备1、提前预习Python面向对象编程思想的基础语法知识,实验之前编写好程序代码2、练习关于Python面向对象编程的常见编程技巧四、实验内容实验题1 分析程序运行结果:阅读下面的程序,分析代码是否能够编译通过。
如果能编译通过,请列出运行的结果,否则请说明编译失败的原因
实验题2设计一个课程类,包括课程编号、课程名称、任课教师、上课地点等属性,把上课地点变量设为私有的,增加构造方法和显示课程信息的方法源码:classClassInfo:def__init__(self,classnumber,classname,teacher,adress)
: self.classnumber=classnumber self.classname=classname self.teacher=teacher
self.__adress=adress def__str__(self): print("课程编号:%d\n课程名称:%s\n任课老师:%s\n" \
"上课地点:%s"%(self.classnumber,self.classname,self.teacher,self.__adress)) return"课程编号:%d\n课程名称:%s\n任课老师:%s\n"
\ "上课地点:%s"%(self.classnumber,self.classname,self.teacher,self.__adress) myclass=ClassInfo(
1111,"Python程序设计","阿意","S2020")
实验题3设计一个表示学生(Student)的类,该类的属性有姓名(name)、年龄(age)、成绩(scores)(成绩包括语文、数学和英语三科成绩,每科成绩的类型为整数),另外有3个方法(1)获取学生姓名的方法:get_name(),返回类型为String()。
(2)获取学生年龄的方法:get_age()方法,返回类型为int(3)返回3门科目中最高的分数:get_course(),返回类型为int源码:classStudent:def__init__(self
, name, age, score): self.name = name self.age = age self.score = score
defget_name(self): returnself.name defget_age(self): return int(self.age) def
get_course(self): # print(self.score.values()) a = list(self.score.values())
# print(a)return max(a) student_01 = Student("张明明", 25, {语文: 56, 数学: 100, 英语: 99}) # score = {语文: 118, 数学: 88, 英语: 122}
# student_01 = Student("张明明", 25, [56, 100, 99])# 高阶函数:sorted print(student_01.get_name()) print(student_01.get_age()) print(student_01.get_course())
实验题4设计一个表示动物(Animal)的类,该类包括颜色(color)属性和叫(call)方法再设计一个表示鱼(Fish)的类,包括尾巴(tail)和颜色(color)两个属性,及叫(call)方法提示:让Fish类继承自Animal类,重写__init__()和call方法。
源码:classAnimal(object):def__init__(self,color):self.color=color defcall(self): print("动物叫") classFish
(Animal):def__init__(self,color): super().__init__(color) self.tail=True defcall(self): print("%s的鱼在吐泡泡"
%self.color) fish=Fish("蓝色") fish.call() animal=Animal("白色") animal.call(
免责声明:本站所有信息均搜集自互联网,并不代表本站观点,本站不对其真实合法性负责。如有信息侵犯了您的权益,请告知,本站将立刻处理。联系QQ:1640731186

