当前位置: 首页 > article >正文

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

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

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

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

 

"""
封装 是 面向对象的三大特性之一
封装就是把类的一些属性和方法都封装在类的内部
在类的外部只需要去实例化对象,然后通过对象去调用属性和方法,不需要关心方法是怎么实现的

应用1:体重
小美体重47公斤,小明体重85公斤。每次跑步会减肥0.5公斤,每次吃东西增加1公斤。
定义类的三要素:类名,属性,方法
分析:
    定义类:Student / Person
    属性:name,weight
    方法:run(),eat()
"""
class Person:
    def __init__(self,name,weight):
        self.name = name
        self.weight = weight
    def run(self):
        print('%s 爱跑步,体重减少0.5公斤' % self.name)
        self.weight -= 0.5   # self.weight = self.weight - 0.5
    def eat(self):
        print(f'{self.name} 爱吃东西,体重增加1公斤')
        self.weight += 1
    def __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 = name
        self.money = money
    def buy(self):
        print(f'{self.name}买东西,花了20块')
        self.money -= 20
    def sell(self):
        print(f'{self.name}卖东西,赚了10块')
        self.money += 10
    def __str__(self):
        return f'我是{self.name},我手上还有【{self.money}】 块钱。'

xiaoli = Student('小李',100)
xiaoli.buy()
print(xiaoli)

xiaochen = Student('小陈',200)
xiaochen.sell()
print(xiaochen)


 运行输出结果:


http://www.kler.cn/a/588033.html

相关文章:

  • 使用easyexcel实现单元格样式设置和下拉框设置
  • coze ai assistant Task 3
  • 【Django】【vue】设计一个评论模块
  • 【人工智能基础2】Tramsformer架构、自然语言处理基础、计算机视觉总结
  • 数字人本地部署之llama-本地推理模型
  • Skema:AI 驱动的方案到 BIM 加速工具,重塑早期设计工作流
  • superset部署记录
  • 奇安信二面
  • SpringMVC(六)异常:全局捕获与错误响应
  • Android (Kotlin) 高版本 DownloadManager 封装工具类,支持 APK 断点续传与自动安装
  • 【模拟面试】计算机考研复试集训(第五天)
  • 自然语言处理 | 文本清洗的20种核心策略:从数据噪声到信息价值
  • 7、标准库的string的常见使用
  • 加固脱壳技术:DEX动态加载对抗
  • Matlab 矢量控制和SVPWM的感应电机控制
  • 二.使用ffmpeg对原始音频数据重采样并进行AAC编码
  • 【Linux】learning notes(4)cat、more、less、head、tail、vi、vim
  • 设计模式--单例模式(Singleton)【Go】
  • LLM自动化评测
  • WEB前端学习JAVA的一些建议