《python数据分析及其在水利工程中的应用》课件-18类的属性与⽅法_第1页
《python数据分析及其在水利工程中的应用》课件-18类的属性与⽅法_第2页
《python数据分析及其在水利工程中的应用》课件-18类的属性与⽅法_第3页
《python数据分析及其在水利工程中的应用》课件-18类的属性与⽅法_第4页
《python数据分析及其在水利工程中的应用》课件-18类的属性与⽅法_第5页
已阅读5页,还剩15页未读 继续免费阅读

下载本文档

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

文档简介

模型骨⾁-类的属性与⽅法类的属性与⽅法Theattributesandmethodsofaclass塑造万象-新的升级任务ShapingEverything-Anewupgradedmission⻓⽼的启示:塑造万象—智水长老世间万物皆可为'模'(类与对象)。掌握塑造之法,汝便能创造万千'⽔利模型',应对复杂局⾯

。升级任务进度TheprogressoftheUpgradetask当前任务任务:模型骨⾁-类的属性与⽅法进行中>>>已完成任务任务:万物之模-类与对象基础已完成任务:⻘出于蓝-类的继承任务:通灵之语-魔术⽅法后续任务待解锁升级任务进度TheprogressoftheUpgradetask当前任务任务:模型骨⾁-类的属性与⽅法进行中>>>已完成任务任务:万物之模-类与对象基础已完成任务:⻘出于蓝-类的继承任务:通灵之语-魔术⽅法后续任务待解锁完成本任务,成为【塑模家】!01第一节实例属性:'⼤坝'的独特档案Instanceattribute:Theuniquefileof'Dam'什么是实例属性Whatisaninstanceattribute实例属性的定义属性是与类或对象相关联的变量,⽤于存储数据实例属性是每个对象(

实例)所独有的属性不同实例的同名属性可以有不同的值什么是实例属性Whatisaninstanceattribute类⽐理解Damnamedam_typeheightcurrent_water_level葛洲坝name="葛洲坝"dam_type="混凝土闸坝"height=47current_water_level=42三峡⼤坝name="三峡⼤坝”dam_type="混凝⼟重⼒坝"height=185current_water_level=175⼩浪底name="⼩浪底"dam_type="混凝⼟⼼墙坝"height=154current_water_level=127不同的⼤坝实例拥有各⾃的属性值在_init_中定义实例属性Defineinstancepropertiesin__init__“

构造(初始化)之时,便是记录⼤坝档案之际。属性通常在__init__⽅法中定义,为每个新对象建⽴独—⽆⼆的档案。“__init__⽅法回顾__init__是类的构造(初始化)⽅法在创建新对象时⾃动调⽤通常⽤于设置对象的初始状态第—个参数必须是self,代表实例本身在_init_中定义实例属性Defineinstancepropertiesin__init__class

Dam:def

__init__(self,name,dam_type,

height):#

self.属性名

=初始值#可以来⾃参数,也可以是默认值self.name=

nameself.dam_type=dam_typeself.height=

height#初始⽔位设为0self.current_water_level=0.0属性定义语法使⽤self.属性名=初始值

的⽅式来定义实例属性:在_init_中定义实例属性Defineinstancepropertiesin__init__class

Dam:def

__init__(self,name,dam_type,

height):#

self.属性名

=初始值#可以来⾃参数,也可以是默认值self.name=

nameself.dam_type=dam_typeself.height=

height#初始⽔位设为0self.current_water_level=0.0属性定义语法使⽤self.属性名=初始值

的⽅式来定义实例属性:访问和修改实例属性Accessandmodifyinstanceproperties访问和修改属性的语法使⽤点号(.)访问对象的属性语法:对象名.属性名同样使⽤点号进⾏属性赋值语法:对象名.属性名=新值属性的独立性每个对象的实例属性是相互独⽴的。修改—个对象的属性不会影响其他对象的同名属性。访问和修改实例属性Accessandmodifyinstanceproperties#创建对象dam_A=Dam("葛洲坝",

"混凝土闸坝",47.0)dam_B=Dam("⼆滩⼤坝",

"双曲拱坝",240.0)#访问属性print(f"{dam_A.name}的类型是

:{dam_A.dam_type}")print(f"{dam_B.name}的初始⽔位是

:{dam_B.current_water_level}")#修改属性print(f"更新{dam_A.name}的⽔位

...")dam_A.current_water_level=35.5print(f"{dam_A.name}当前⽔位

:{dam_A.current_water_level}⽶

")#dam_B

的⽔位不受影响print(f"{dam_B.name}当前⽔位仍是

:{dam_B.current_water_level}⽶

")示例运行结果葛洲坝的类型是:混凝土闸坝二滩大坝的初始水位是:0.0更新葛洲坝的水位...葛洲坝当前水位:35.5米二滩大坝当前水位仍是:0.0米02第二节实例⽅法:'⼤坝'的专属能⼒Examplemethod:Theexclusiveabilityof'Dam'什么是实例⽅法?Whatisaninstancemethod?⼤坝不仅有静态的属性(

如⾼度、

类型),

还有动态的能⼒

⾏为),

例如"蓄⽔"、"泄洪"、"⽣成运⾏报告"。

这些能⼒就是实例⽅法。运算顺序与括号⽅法是定义在类内部的函数⽤于执⾏与对象相关的操作或⾏为实例⽅法可以访问和修改对象的实例属性

⽅法可以处理对象的内部状态实例方法的特点第—个参数约定俗成地命名为selfself代表调⽤该⽅法的对象实例通过self可以访问实例的属性⽅法可以有额外的参数来接收外部数据定义实例⽅法Defineinstancemethods注意事项它必须在类的定义内部。第一个参数必须是self。定义实例⽅法Defineinstancemethodsclass

Dam:def

__init__(self,name,dam_type,

height):self.name=

nameself.dam_type=dam_typeself.height=

heightself.current_water_level=0.0print(f"初始化完成

:{self.name}")#定义—个蓄⽔⽅法def

store_water(self,water_volume):"""模拟⼤坝蓄⽔

,增加当前⽔位。

"""if

water_volume>

0:self.current_water_level+=water_volume

#使⽤self修改实例属性print(f"{self.name}成功蓄⽔{water_volume}单位,

当前⽔位

:{self.current_water_level}⽶

")else:print("蓄⽔量必须为正数!

")#定义—个显示状态的⽅法def

display_status(self):"""显示⼤坝的当前状态信息。

"""print(f"---{self.name}状态报告---")print(f"类型

:

{self.dam_type}")print(f"坝⾼

:

{self.height}⽶

")print(f"当前⽔位

:{self.current_water_level}⽶

")#使⽤

self

访问实例属性调⽤实例⽅法Calltheinstancemethod示例dam1=Dam("三⻔峡⼤坝",

"重⼒坝",

106.0)dam2=Dam("丹江⼝⼤坝",

"重⼒坝",

176.6)⽅法调⽤语法使⽤点号(.)操作符调⽤对象的⽅法语法:对象名.⽅法名(参数)dam1.store_water(10.5)#实际执⾏

Dam.store_water(dam1,10.5)dam2.store_water(20.0)#实际执⾏

Dam.store_water(dam2,20.0#调⽤实例⽅法⼤坝类的使⽤示例Examplesoftheuseofthedamclass#创建两个⼤坝对象three_gorges=Dam("三峡⼤坝","混凝⼟重⼒坝",

185,

175)xiaolangdi=Dam("⼩浪底",

"⼟⽯坝",

154,

145)#进⾏蓄⽔操作three_gorges.store_water(100)three_gorges.store_water(50)xiaolangdi.store_water(120)#进⾏泄洪操作three_gorges.release_water(30)#测试超过警戒⽔位xiaolangdi.store_water(30)#这将超过警戒⽔位#测试超过最⼤安全⽔位three_gorges.store_water(60)#这将超过最⼤安全⽔位,触发紧急泄洪#显示最终状态three_gorges.display_status()xiaolangdi

温馨提示

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

评论

0/150

提交评论