首页 > 编程语言 >python面向对象-学习笔记(八、综合案例)

python面向对象-学习笔记(八、综合案例)

时间:2023-11-04 22:00:25浏览次数:48  
标签:__ return zsq python self 笔记 面向对象 num def

计算器,实现一些基本的操作,加减乘除运算,以及打印结果操作

点击查看代码
import win32com.client


class Caculator:

    # 装饰器私有
    def __check_num_zsq(func):
        def inner(self, n):
            if not isinstance(n, int):
                raise TypeError("当前这个数据的类型有问题,应该是一个整型数据")
            return func(self, n)

        return inner

    def __say(self, word):
        speaker = win32com.client.Dispatch("SAPI.SpVoice")
        speaker.Speak(word)

    def __create_say_zsq(word=""):
        def __say_zsq(func):
            def inner(self, n):
                self.__say(word + str(n))
                return func(self, n)

            return inner

        return __say_zsq

    @__check_num_zsq
    @__create_say_zsq()
    def __init__(self, num):
        self.__result = num

    @__check_num_zsq
    @__create_say_zsq("加")
    def jia(self, num):
        self.__result += num
        return self

    @__check_num_zsq
    @__create_say_zsq("减去")
    def jian(self, num):
        self.__result -= num
        return self

    @__check_num_zsq
    @__create_say_zsq("乘以")
    def cheng(self, num):
        self.__result *= num
        return self

    def show(self):
        print("计算结果: %d" % self.__result)
        self.__say("计算结果: %d" % self.__result)
        return self

    def clear(self):
        self.__result = 0
        return self

    @property
    def result(self):
        return self.__result


c1 = Caculator(2)
c1.jia(6).jian(4).cheng(5).show().jia(555).show()

print(c1.result)



学习链接: 【Python】零基础入门 面向对象编程(强烈推荐)

标签:__,return,zsq,python,self,笔记,面向对象,num,def
From: https://www.cnblogs.com/amanzhj/p/17809866.html

相关文章

  • python实现手势识别的示例(入门)
    原文:https://pythonjishu.com/yoprvijnxxyihab/手势识别是计算机视觉领域的一个重要研究方向。在实际应用中,手势识别可以被用于人机交互、智能家居控制等领域。在本文中,我们将介绍如何使用Python实现手势识别的示例代码。环境搭建安装Python要使用Python进行手势识别的开发,首......
  • 程序员笔记本电脑选 windows 还是 MAC
    计算机选择是每个进入IT行业同学的第一个重要选择,那么你是怎么选择的呢?选择操作系统(Windows还是macOS)取决于程序员的需求、偏好和工作流程。每个操作系统都有其优点和缺点,下面将分别讨论它们,以帮助你做出决策。视频:https://www.bilibili.com/video/BV13c411d7eK/Windows:**......
  • 升级linux下的python版本
    以centos7为例将python升级到3.10.111、安装必备软件包:##第一步基础包yum-yinstallzlib-develbzip2-developenssl-develncurses-develsqlite-develreadline-develtk-develgdbm-devellibpcap-develxz-develgcc##第二步安装db4-devel,必先安装epel-releaseyumi......
  • 最全的李慧芹APUE-文件系统笔记(上)
    文件系统注:李慧芹老师的视频课程请点这里,本篇为文件系统一章的笔记(上,剩余内容和李慧芹老师课上提到的myls的实现预计会一起在下中放出),课上提到过的内容基本都会包含,上一章为系统调用IO本章内容目录和文件获取文件属性(实现类ls)文件访问权限umask更......
  • 学习笔记8
    第五章总结硬件定时器定时器是由时钟源和可编程计数器组成的硬件设备。时钟源通常是一个晶体振荡器,会产生周期性电信号,以精确的频率驱动计数器。使用一个倒计时值对计数器进行编程,每个时钟信号减1。当计数减为0时,计数器向CPU生成一个定时器中断,将计数值重新加载到计数器中,并重......
  • 学习笔记8 第五章的自学归纳
    学习笔记8第五章的自学归纳硬件定时器本章讨论了定时器和定时器服务;定时器是由时钟源和可编程计数器组成的硬件设备。计数器周期称为定时器刻度,是系统的基本计时单元。个人计算机定时器实时时钟(RTC)RTC由一个小型备用电池供电。即使在个人计算机关机时,它也能连续......
  • Python 潮流周刊#25:性能最快的代码格式化工具 Ruff!
    你好,我是猫哥。这里每周分享优质的Python、AI及通用技术内容,大部分为英文。标题取自其中一则分享,不代表全部内容都是该主题,特此声明。本周刊由Python猫出品,精心筛选国内外的250+信息源,为你挑选最值得分享的文章、教程、开源项目、软件工具、播客和视频、热门话题等内容。愿......
  • 《Unix/Linux系统编程》第五章学习笔记
    《Unix/Linux系统编程》第五章学习笔记第五章定时器及时钟服务本章讨论了定时器和定时器服务;介绍了硬件定时器的原理和基于Intelx86的PC中的硬件定时器;讲解了CPU操作和中断处理;描述了Linux中与定时器相关的系统调用、库函数和定时器服务命令;探讨了进程间隔定时器、定......
  • 【python进阶】14大模块200页知识体系md笔记,第4篇:linux命令进阶(2)
    本文从14大模块展示了python高级用的应用。分别有Linux命令,多任务编程、网络编程、Http协议和静态Web编程、html+css、JavaScript、jQuery、MySql数据库的各种用法、python的闭包和装饰器、mini-web框架、正则表达式等相关文章的详细讲述。完整版笔记直接地址:请移步这里共14......
  • 20211128《信息安全系统设计与实现》第五章学习笔记
    一、任务内容自学教材第5章,提交学习笔记(10分)1.知识点归纳以及自己最有收获的内容,选择至少2个知识点利用chatgpt等工具进行苏格拉底挑战,并提交过程截图,提示过程参考下面内容(4分)“我在学***X知识点,请你以苏格拉底的方式对我进行提问,一次一个问题”核心是要求GPT:“请你以苏格拉......