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

Python高级——类的知识

一、知识梳理:

二、货币场景搭建:

1)代码展示:

class RMB:
    count = 0
    def __init__(self,yuan=0,jiao=0,fen=0):
        self.__yuan = yuan
        self.__jiao = jiao
        self.__fen = fen
        RMB.count += 1

    def __add__(self, other):
        temp = RMB()
        temp.__yuan = self.__yuan + other.__yuan
        temp.__jiao = self.__jiao + other.__jiao
        temp.__fen = self.__fen + other.__fen
        return temp

    def __sub__(self, other):
        temp = RMB()
        temp.__yuan = self.__yuan - other.__yuan
        temp.__jiao = self.__jiao - other.__jiao
        temp.__fen = self.__fen - other.__fen
        return temp

    def __gt__(self, other):
        if self.__yuan > other.__yuan:
            return True
        elif (self.__yuan == other.__yuan) and self.__jiao > other.__jiao:
            return True
        elif ((self.__yuan == other.__yuan) and (self.__jiao == other.__jiao)) and self.__fen > other.__fen:
            return True
        else:
            return False

    def __isub__(self, other=0):
        self.__yuan -= 1
        self.__jiao -= 1
        self.__fen -= 1

    def __iadd__(self, other=0):
        self.__yuan += 1
        self.__jiao += 1
        self.__fen += 1

    def __del__(self):
        RMB.count -= 1

    def __str__(self):
        return f"{self.__yuan}元{self.__jiao}角{self.__fen}分,count={RMB.count}"

if __name__ == '__main__':
    x = RMB(5,5,5)
    print(f"x={x}")
    y = RMB(3,3,3)
    print(f"y={y}")
    z = x + y
    print(f"x+y={z}")
    w = x - y
    print(f"x-y={w}")
    print(f"x > y的结果是{x > y}")
    x.__isub__()
    print(f"x自减之后,x={x}")
    y.__iadd__()
    print(f"y自增之后,y={y}")

 2)结果展示:

x=5元5角5分,count=1
y=3元3角3分,count=2
x+y=8元8角8分,count=3
x-y=2元2角2分,count=3
x > y的结果是True
x自减之后,x=4元4角4分,count=3
y自增之后,y=4元4角4分,count=3

http://www.dtcms.com/a/80223.html

相关文章:

  • 域渗透工具推荐:impacket
  • 第6关:部分快速排序-用分治法实现
  • 2.Linux基本指令(下)
  • conda报错activate没办法激活环境
  • 从TouchDriver Pro到Touchdriver G1,Weart触觉手套全系解析:XR交互的“真实触感”如何实现?
  • 【北京迅为】iTOP-RK3568开发板OpenHarmony系统南向驱动开发UART接口运作机制
  • 各种排序汇总
  • Linux驱动开发基础(can)
  • 文献检索与下指南
  • fetch,ajax,axios的区别以及使用
  • 【python】OpenCV—Template Matching
  • 数学建模 第三节
  • Python绘图技巧,主流绘图库
  • Day 21: 数组中的逆序对
  • Java Stream两种list判断字符串是否存在方案
  • 深度学习优化技术教程
  • 机器人打磨控制技术
  • electron框架(4.0)electron-builde和electron Forge的打包方式
  • 第J3周:DenseNet121算法实现01(Pytorch版)
  • C语言指针(详细总结)
  • Linux应用:Linux的信号
  • UI设计中的加载动画:优化用户体验的细节
  • MCU-芯片时钟与总线和定时器关系,举例QSPI
  • AI agent 开发全链路工具集
  • 《论语别裁》第01章 学而(31) 诗的人生
  • [C++游戏开发基础]:数据封装(隐藏)的好处
  • JVM 的类加载机制原理
  • 常用的git和linux命令有哪些?
  • 【C#】CS学习之Modbus通讯
  • 微信小程序计算属性与监听器:miniprogram-computed