版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
Python语言基础与应用06面向对象程序设计PYTHON目录CONTENTSTEACH0102036.1类和对象6.2属性6.3方法046.4构造方法和析构方法056.5面向对象的三大特性6.1类和对象6.2属性1、概念
类(Class):类是一种抽象的概念,它定义了一组具有相似属性和行为的对象的模板,包含属性(变量)和方法(函数)。通过类,可以创建具有相同属性和行为的多个对象。1、概念对象(Object):对象是类的实例。每个对象都有其独特的属性和行为。对象的属性,由类定义,并在创建对象时初始化。对象的方法,由类定义,并在创建对象时与对象相关联。通过对象,可以访问和操作其属性,并调用其方法。2、类和对象的创建类的创建:在Python中,使用class关键字来定义或创建一个类。对象的创建:使用类的名称和括号来创建实例对象。【示例1】#创建Dog类classDog:pass#创建对象dog1、对象dog2dog1=Dog()dog2=Dog()类属性是定义在类本身上的属性,属于类本身,而不是类的任何特定实例。在类的所有实例之间共享相同的值。可以通过“类名.属性名”的方式访问。实例属性是定义在类的实例上的属性,每个实例可以有自己独特的值。只能通过对象来访问。#创建一个Dog类classDog:#类属性:所有狗都共有的属性speciesspecies="哺乳动物"#犬种,这是一个类属性#初始化方法,设置实例属性namedef__init__(self,name):#实例属性:每只狗独有的属性=name#狗的名字#创建一个Dog类的实例,即一只具体的狗“小狗毛毛”molly=Dog("毛毛")#访问类属性print(Dog.species)#输出"哺乳动物"#访问实例属性print()#输出"毛毛"【示例2】小结:知识点:类、对象、属性类是对象的模板,封装了对象的一些性质和行为。对象是类的具体化,每个对象都有其独特的属性和行为。类属性是定义在类中的属性,它们在类的所有实例之间共享。实例属性是定义在对象中的属性,每个实例都有自己独立的实例属性。6.3方法1、方法与函数的区别
●定义位置:函数定义在模块级别,而方法定义在类内部。
●调用方式:函数直接通过名称调用,方法通过类的实例调用。
●参数:方法的第一个参数,通常是一个名为self的第一个参数,代表类的实例。2、方法的定义和调用
●在Python中,方法是类的成员函数。
●方法定义在类的定义中,并使用实例数据进行操作。1、方法与函数的区别
●定义位置:函数定义在模块级别,而方法定义在类内部。
●调用方式:函数直接通过名称调用,方法通过类的实例调用。
●参数:方法的第一个参数,通常是一个名为self的第一个参数,代表类的实例。2、方法的定义和调用
●在Python中,方法是类的成员函数。
●方法定义在类的定义中,并使用实例数据进行操作。【示例1】#方法的定义#定义一个MyClass类classMyClass:defmy_method(self,arg1,arg2):#方法体pass【示例2】#方法的调用#创建一个MyClass的实例obj=MyClass()
#调用my_method方法obj.my_method(arg1_value,arg2_value)3、方法的分类#定义MyClass类classMyClass:definstance_method(self,arg1,arg2):#可以通过self访问和修改实例的属性print("Thisisaninstancemethod.")#创建类的实例obj=MyClass()#调用实例方法obj.instance_method(2,3)3、方法的分类【示例3:实例方法】#定义MyClass类classMyClass:@classmethoddefclass_method(cls,arg1,arg2):#可以通过cls访问和修改类的属性print("Thisisaclassmethod.")#通过类调用类方法MyClass.class_method(2,3)#或者通过类的实例调用类方法obj=MyClass()obj.class_method(2,3)3、方法的分类【示例4:类方法】#定义MyClass类classMyClass:
@staticmethoddefstatic_method(arg1,arg2):#静态方法不能访问类的实例或类属性
print("Thisisastaticmethod.")#通过类调用静态方法MyClass.static_method(2,3)#或者通过类的实例调用静态方法obj=MyClass()obj.static_method(2,3)3、方法的分类【示例5:静态方法】小结:知识点:方法在Python中,函数和方法有一些关键的区别,这些区别主要体现在定义位置、调用方式、参数等方面。方法的定义是在类的定义中进行,并通过实例数据进行方法的调用操作。方法在实际应用中,通常用于操作类的状态或执行与类的实例相关的任务,方法类型有:实例方法、类方法、静态方法,它们具有不同的用途和调用方式。6.4构造方法和
析构方法1、特殊的两个方法构造方法:用于在创建类的新实例时,进行初始化操作。析构方法:用于在对象被销毁之前,执行清理操作。构造方法对象的初始化析构方法回收/撤销对象2、构造方法名字是__init__。当创建类的新实例时,__init__方法会被自动调用。可以接受任意数量的参数,除了第一个参数必须是self之外,其他参数可以根据需要进行定义。self参数代表类的实例本身,使用self可以访问和修改实例的属性和方法。2、构造方法常用于:设置对象的初始属性值。分配或初始化对象内部使用的资源。验证传递给对象的参数的有效性。2、构造方法#创建一个Person类classPerson:def__init__(self,name,age):=name
#设置实例的name属性self.age=age
#设置实例的age属性print("Person对象已创建")#创建一个Person对象实例person=Person("Alice",30)#访问对象实例的属性print()
#输出:Aliceprint(person.age)
#输出:30【示例1】3、析构方法名字是__del__。当对象被回收时,会调用__del__这个方法。接受self作为第一个参数(代表类的实例本身),表示即将被销毁的对象实例。通常用于:释放对象持有的资源,如文件句柄、网络连接、内存等。执行任何在对象销毁之前必须完成的清理任务。执行对象的状态维护或验证。3、析构方法#创建一个Person类classPerson:def__init__(self,name,age):=nameself.age=ageprint(f"创建了一个名为{},年龄为{self.age}的人")def__del__(self):print(f"销毁了名为{},年龄为{self.age}的人")#创建一个Person对象实例p=Person("Alice",30)#删除对象实例p的引用,Python将自动销毁p对象并调用其析构方法delp【示例2】小结:知识点:构造方法、析构方法构造方法是在类定义中定义一个名为__init__的特殊方法。它接受self作为第一个参数,也可以接受其它任意数量的参数。在创建类的新实例时自动调用,初始化对象。析构方法是在类定义中定义一个名为__del__的特殊方法。它接受self作为第一个参数,代表类的实例本身。当实例对象被销毁时,Python解释器会自动调用这个方法。6.5面向对象的
三大特性面向对象编程的三大核心特性:封装、继承和多态。Python作为一种面向对象的语言,也具有封装、继承和多态的特性。封装多态继承1、封装封装是指隐藏对象的内部状态(属性)和实现细节(方法),只对外提供有限的访问接口。封装通常是通过定义私有属性和私有方法来实现的。私有属性和方法只能在类内部访问,而不能从外部直接访问。可以通过在属性或方法名前加上两个下划线(_
_)来定义私有成员。1、封装#创建一个Person类classPerson:def__init__(self,name,age):#私有属性self.__name=nameself.__age=age#公有方法,用于获取私有属性的值defget_name(self):returnself.__name#公有方法,用于获取私有属性的值defget_age(self):returnself.__age#公有方法,用于设置私有属性的值defset_age(self,new_age):ifnew_age>=0:self.__age=new_ageelse:print("Invalidage!")【示例1】1、封装(接上页)#创建一个Person对象person=Person("Alice",25)#通过公有方法获取私有属性的值print(person.get_name())
#输出:Aliceprint(person.get_age())
#输出:25#通过公有方法设置私有属性的值person.set_age(30)print(person.get_age())
#输出:30#尝试直接访问私有属性#
print(person.__name)
#报错【示例1】2、继承继承是从已有的类(父类或基类)派生出新的类(子类)的过程。子类继承了父类的属性和方法,同时还可以定义自己特有的属性和方法。在Python中,通过class关键字定义新类时,在类名后面用圆括号列出基类名,即可实现继承。代码复用的重要手段2、继承#父类:动物classAnimal:def__init__(self,name):=namedefspeak(self):return"动物的叫声"#子类:狗classDog(Animal):defspeak(self):return"汪汪汪!"#子类:猫classCat(Animal):defspeak(self):return"喵喵喵!"#创建Dog和Cat对象,并调用speak方法dog=Dog("小汪")print(dog.speak())#输出:汪汪汪!cat=Cat("小喵")print(cat.speak())
#输出:喵喵喵!#创建Animal对象,并调用speak方法frog=Animal("小蛙")print(frog.speak())#输出:动物的叫声【示例2】3、多态多态是指允许使用相同的接口来处理不同类型的对象。当调用同一个方法时,不同的对象会产生不同的行为。多
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 【大学课件】单片机原理与应用设计 子程序结构
- DB14T-日光温室草莓固碳生产技术规程编制说明
- 《PCT在细菌感染诊》课件
- 《母婴护理员》课件
- 《电子邮件课件》课件
- 单位管理制度展示选集【职员管理】十篇
- 医药高新区排水防涝设施项目可行性研究报告模板-立项拿地
- 单位管理制度收录大合集人员管理篇十篇
- 《头晕的健康教育》课件
- 2025房屋装修合同范本版
- 办理落户新生儿委托书模板
- 2024年计算机二级WPS考试题库(共380题含答案)
- 施工现场环境因素识别、评价及环境因素清单、控制措施
- 【9道期末】安徽省宣城市2023-2024学年九年级上学期期末道德与法治试题(含解析)
- 2024年医药行业年终总结.政策篇 易联招采2024
- 《工程造价专业应用型本科毕业设计指导标准》
- 仓库主管2025年终总结及2025工作计划
- 儿科护士述职报告2024
- 2024年01月11396药事管理与法规(本)期末试题答案
- 股权投资协议的风险控制
- 酒店微笑服务培训
评论
0/150
提交评论