python面向对象:封装的编程案例

devtools/2025/3/17 18:01:34/

面向对象三大特性之一:封装

封装 是面向对象编程的一大特点,是面向对象编程的第一步(根据职责 将属性和方法封装到一个抽象的类中)。

外界使用类创建对象,然后让对象调用方法。对象方法的细节 都被封装在类的内部

 

python">"""
封装 是 面向对象的三大特性之一
封装就是把类的一些属性和方法都封装在类的内部
在类的外部只需要去实例化对象,然后通过对象去调用属性和方法,不需要关心方法是怎么实现的应用1:体重
小美体重47公斤,小明体重85公斤。每次跑步会减肥0.5公斤,每次吃东西增加1公斤。
定义类的三要素:类名,属性,方法
分析:定义类:Student / Person属性:name,weight方法:run(),eat()
"""
class Person:def __init__(self,name,weight):self.name = nameself.weight = weightdef run(self):print('%s 爱跑步,体重减少0.5公斤' % self.name)self.weight -= 0.5   # self.weight = self.weight - 0.5def eat(self):print(f'{self.name} 爱吃东西,体重增加1公斤')self.weight += 1def __str__(self):# return f'{self.name},当前体重:{self.weight}'return '我是 %s , 我当前的体重是:%.1f ' % (self.name,self.weight)xiaomei = Person('小美',47)
xiaomei.run()
print(xiaomei)xiaoming = Person('小明',85)
xiaoming.eat()
print(xiaoming)# 观察上面的例子:属性和方法的具体实现都放在了类中,主程序只需要去实例化对象,调用属性和方法即可。这就是封装
# 练习:小李同学有100块钱,小陈同学有200块钱,每次 买东西会花20块,每次 卖东西能赚10块。
class Student:def __init__(self,name,money):self.name = nameself.money = moneydef buy(self):print(f'{self.name}买东西,花了20块')self.money -= 20def sell(self):print(f'{self.name}卖东西,赚了10块')self.money += 10def __str__(self):return f'我是{self.name},我手上还有【{self.money}】 块钱。'xiaoli = Student('小李',100)
xiaoli.buy()
print(xiaoli)xiaochen = Student('小陈',200)
xiaochen.sell()
print(xiaochen)

 运行输出结果:


http://www.ppmy.cn/devtools/167890.html

相关文章

【含文档+PPT+源码】基于SpringBoot和Vue的编程学习系统

项目介绍 本课程演示的是一款 基于SpringBoot和Vue的编程学习系统,主要针对计算机相关专业的正在做毕设的学生与需要项目实战练习的 Java 学习者。 1.包含:项目源码、项目文档、数据库脚本、软件工具等所有资料 2.带你从零开始部署运行本套系统 3.该项…

C++特性——智能指针

为什么需要智能指针 对于定义的局部变量,当作用域结束之后,就会自动回收,这没有什么问题。 当时用new delete的时候,就是动态分配对象的时候,如果new了一个变量,但却没有delete,这会造成内存泄…

【Mac 系统卸载 Go 语言完整指南】

Mac 系统卸载 Go 语言完整指南 1. 删除 Go 安装目录 # 定位安装路径 which go # 默认路径为 /usr/local/go # 删除安装目录 sudo rm -rf /usr/local/go # 删除系统路径配置(通过 .pkg 安装时需执行) sudo rm -rf /etc/paths.d/go …

RHCE(RHCSA复习:npm、dnf、源码安装实验)

七、软件管理 7.1 rpm 安装 7.1.1 挂载 [rootlocalhost ~]# ll /mnt total 0 drwxr-xr-x. 2 root root 6 Oct 27 21:32 hgfs[rootlocalhost ~]# mount /dev/sr0 /mnt #挂载 mount: /mnt: WARNING: source write-protected, mounted read-only. [rootlocalhost ~]# [rootlo…

Hive SQL 精进系列:REGEXP_REPLACE 函数的用法

目录 一、引言二、REGEXP_REPLACE 函数基础2.1 基本语法参数详解2.2 简单示例 三、REGEXP_REPLACE 函数的应用场景3.1 去除特殊字符3.2 统一字符串格式 四、REGEXP_REPLACE 与 REPLACE 函数的对比4.1 功能差异4.2 适用场景 五、REGEXP_REPLACE 与 REGEXP 函数的对比5.1 功能差异…

Java-servlet(六)详细讲解Servlet-Web.xml标签知识

Java-servlet(六)详细讲解Servlet-Web.xml标签知识 前言一、servlet标签标签概念标签结构及示例子标签含义更多用法示例 二、servlet-mapping标签标签概念标签结构及示例子标签含义更多用法示例URL 模式匹配规则 三、init-param标签标签概念标签结构及示…

​​​​​​​大语言模型安全风险分析及相关解决方案

大语言模型的安全风险可以从多个维度进行分类。 从输入输出的角度来看,存在提示注入、不安全输出处理、恶意内容生成和幻觉错误等风险; 从数据层面来看,训练数据中毒、敏感信息泄露和模型反演攻击是主要威胁; 模型自身则面临拒绝服务和盗窃的风险; 供应链和插件的不安全引…

微信小程序接入deepseek

先上效果 话不多说&#xff0c;直接上代码&#xff08;本人用的hbuilder Xuniapp&#xff09; <template><view class"container"><!-- 聊天内容区域 --><scroll-view class"chat-list" scroll-y :scroll-top"scrollTop":…