课件0701-0704-类的定义和调用_第1页
课件0701-0704-类的定义和调用_第2页
课件0701-0704-类的定义和调用_第3页
课件0701-0704-类的定义和调用_第4页
课件0701-0704-类的定义和调用_第5页
已阅读5页,还剩26页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

类的定义和调用.制作:课程编写团队出版社:机械工业出版社《Python编程基础与应用》配套课件本课件为《Python编程基础与应用(第2版)》配套教学资源,由编写团队精心打造。为便于教学使用,团队同步提供了丰富的辅助材料,涵盖微课视频、教学课件、实训手册、习题答案、课程标准及程序源代码等。同时,教材配套超星教学示范包,支持一键克隆为网络在线课程,助力高效开展线上线下混合式教学。欢迎联系出版方订购使用。

书名:《Python编程基础与应用(第2版)》出版社:机械工业出版社主编:蓝永健、陈冬冬副主编:蔡德琛、朱海鑫、邓爱玲+contents目录面向对象的概念类的定义和调用类的属性面向对象的概念01面向对象(ObjectOriented)是软件开发方法,是一种程序设计规范,是一种对现实世界理解和抽象的方法。面向对象编程(Object-OrientedProgramming,OOP)是一种编程范式,Python完全支持OOP。在面向对象编程思想中,一切事物皆对象,通过面向对象的方式,将现实世界的事物抽象成对象,现实世界中的关系抽象成类、继承,帮助人们实现对现实世界的抽象与数字建模。Python采用了面向对象编程程序设计思想,它可以很方便地创建类和对象。

面向对象:对象和类2)类类是一个抽象的概念,它是对一群具有相同特征和行为的事物的统称。如,人类,汽车类等。人类,具有相同的属性和行为,如姓名、性别、身高、体重等属性,吃饭、睡觉、走路等行为。

面向对象:对象和类1)对象对象英文为“object”,表示任意存在的事物。现实世界中,随处可见的一个事物即是对象,如一个人,一辆车等。如要形容一个人对象,我们通常用两种方式,第一静态的,如体貌特征、年龄等,即对象的属性;第二动态的,如动作、行为等,即对象的行为。

面向对象:对象和类简单地总结,类(Class)与对象(Object)类:抽象模板,描述对象的属性和行为。对象:类的具体实例,拥有类定义的属性和方法。

面向对象的四大核心特性(1)封装(Encapsulation)作用:隐藏内部细节,暴露安全接口。实现:使用私有属性/方法(命名前加__)。通过公有方法访问私有成员。先做了解,后续会有具体介绍

面向对象的四大核心特性(2)继承(Inheritance)作用:子类继承父类的属性和方法,实现代码复用。类型:单继承(Python默认)多继承(通过逗号分隔多个父类)。先做了解,后续会有具体介绍

面向对象的四大核心特性(3)多态(Polymorphism)作用:同一方法在不同类中有不同实现。实现:通过方法重写或鸭子类型(DuckTyping)。先做了解,后续会有具体介绍

面向对象的四大核心特性(4)抽象(Abstraction)作用:定义接口规范,隐藏实现细节。实现:通过抽象基类(ABC)或约定(如未实现方法抛出NotImplementedError)。先做了解,后续会有具体介绍类的定义和调用02

类的创建在Python中,要想创建一个对象,需先定义一个类。在Python中,类是通过class关键字定义的,用于创建对象(实例)。类的定义语法格式如下:class类名():类的实现部分,或者写pass其中类的实现部分主要有类变量、方法和属性等定义语句组成。如果在定义类时,没想好类的具体功能,可以用pass语句代替,叫作占位语句,无实际意义。

类的创建——基本语法classClassName:"""类的文档字符串"""class_attribute=value#类属性

def__init__(self,parameters):#构造方法self.instance_attribute=parameters#实例属性

defmethod(self,parameters):#实例方法#方法体pass

@classmethoddefclass_method(cls,parameters):#类方法pass

@staticmethoddefstatic_method(parameters):#静态方法pass

类的创建——简介示例classDog:

"""一个表示狗的简单类"""

species="Canisfamiliaris"#类属性,所有实例共享

def__init__(self,name,age):

"""初始化方法"""=name#实例属性self.age=age

defbark(self):

"""实例方法"""returnf"{}sayswoof!"

def__str__(self):

"""特殊方法,定义对象的字符串表示"""returnf"{}is{self.age}yearsold"类的调用(实例化)为什么要对类实例化?类实例化(创建类的实例)是面向对象编程中的核心概念,主要原因包括:创建具体对象:类只是蓝图/模板,实例化才能创建具体可用的对象封装数据:每个实例可以维护自己独立的状态(属性值)实现多态:不同实例可以表现出不同的行为重用代码:通过实例化可以多次重用类定义的逻辑管理状态:实例可以保存和修改自己的属性状态类实例化的基本语法instance_name:变量名,用于引用该实例ClassName:要实例化的类名arguments:传递给__init__方法的参数(如果有)instance_name=ClassName(arguments)实例化示例——基本实例化#类的定义classPerson:def__init__(self,name,age):=nameself.age=age

defintroduce(self):print(f"大家好,我是{},今年{self.age}岁")#实例化p1=Person("张三",25)#创建第一个实例p2=Person("李四",30)#创建第二个实例roduce()#输出:大家好,我是张三,今年25岁roduce()#输出:大家好,我是李四,今年30岁实例化示例——带默认参数的实例化#类的定义classCar:

def__init__(self,brand,model="未知型号"):self.brand=brandself.model=model

definfo(self):print(f"这辆车是{self.brand}{self.model}")#实例化car1=Car("丰田")#使用默认model值car2=Car("宝马","X5")#提供model值()#输出:这辆车是丰田

未知型号()#输出:这辆车是宝马X5实例化示例——多个实例独立工作classBankAccount:#类的定义def__init__(self,owner,balance=0):self.owner=ownerself.balance=balance

defdeposit(self,amount):self.balance+=amountprint(f"存入{amount},当前余额:{self.balance}")

defwithdraw(self,amount):ifamount>self.balance:print("余额不足")else:self.balance-=amountprint(f"取出{amount},当前余额:{self.balance}")#实例化#创建两个独立账户account1=BankAccount("小明",1000)account2=BankAccount("小红",500)

#输出:存入200,当前余额:1200account1.deposit(200)

#输出:取出100,当前余额:400account2.withdraw(100)实例化示例——定义学生类并实例化#以下是类的定义classstudent():grade="高一"defspeak(self,sname,ssex,sage):=snameself.sex=ssexself.age=sageprint("大家好!我是"+str()+",性别是"+str(self.sex)+",今年"+str(self.age)+"岁")defstudy(self):print("我正在认真学习!")#以下是类的调用,即实例化stu1=student()#实例化学生类student#对实例man1调用实例方法speak,并传递3个参数stu1.speak("小明",'男',16)print("今年在读"+str(student.grade))stu1.study()#以下是运行结果大家好!我是小明,性别是男,今年16岁今年在读高一我正在认真学习!可以看到,在上述例子中,定义了name、age和sex这3个对象属性。实例化对象的时候,只需要根据实例化的语法格式进行即可。类的属性03类的属性——为什么要定义类的属性?类的数据成员是在类中定义的成员变量,用来存储描述类的特征的值,称为属性。属性实际上是在类中的变量,建议在类定义的开始位置初始化类的属性,或者使用构造方法(__init__)初始化实例的属性。类属性的定义和使用在类中定义属性主要有以下原因:封装数据:将数据与操作数据的方法绑定在一起维护状态:让对象可以保存自己的状态信息代码组织:将相关数据和功能组织在一起,提高代码可读性和可维护性数据共享:类属性可以在所有实例间共享数据访问控制:可以通过属性控制数据的访问权限类的属性分类Python中的类属性可以分为以下几类属性类型定义方式访问范围修改影响用途类属性类内部直接定义类名或实例均可访问影响所有实例存储共享数据实例属性__init__

中通过

self

定义仅实例访问仅影响当前实例存储对象特有数据公共属性无命名限制(如

self.value)外部直接访问直接生效常规数据操作私有属性以

__

开头(如

__secret)需通过公有方法访问通过方法控制修改隐藏内部实现,增强安全性类的属性——1.类属性定义:直接在类中定义(不在任何方法内),所有实例共享。特点:通过类名或实例均可访问。修改类属性会影响所有实例。用途:存储类级别的常量或共享数据。类的属性——2.实例属性定义:在__init__或其他实例方法中通过self定义,属于具体实例。特点:每个实例拥有独立的副本。只能通过实例访问。用途:存储对象特有的数据。类的属性——3.公共属性定义:无命名限制的属性,可直接通过实例访问。特点:命名无前缀(如self.value)。可随意读取和修改。用途:常规属性,允许外部直接操作。类

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论