话不多说,上代码,看结果。
import win32com.client
# 实现计算器的加减乘除功能,并能语音播报出来
class Calculator:
def __say(self, word):
# 1. 创建一个播报器对象
speaker = win32com.client.Dispatch("SAPI.SpVoice")
# 2. 通过这个播报器对象, 直接, 播放相对应的语音字符串就可以
speaker.Speak(word)
def __say_zsq_zsq(word=''):
def __say_zsq(func):
def inner(self, x):
# 1. 创建一个播报器对象
speaker = win32com.client.Dispatch("SAPI.SpVoice")
# 2. 通过这个播报器对象, 直接, 播放相对应的语音字符串就可以
speaker.Speak(word + str(x))
return func(self, x)
return inner
return __say_zsq
def __check_num_zsq(func):
def inner(self, x):
if not isinstance(x, int):
raise TypeError('数据类型输错%s, 应该是int型' % type(x))
return func(self, x)
return inner
@__check_num_zsq
@__say_zsq_zsq()
def __init__(self, x):
self.__res = x
@__check_num_zsq
@__say_zsq_zsq('加')
def jia(self, x):
self.__res += x
return self
@__check_num_zsq
@__say_zsq_zsq('减')
def jian(self, x):
self.__res -= x
return self
@__check_num_zsq
@__say_zsq_zsq('乘以')
def cheng(self, x):
self.__res *= x
return self
@__check_num_zsq
@__say_zsq_zsq('除以')
def chu(self, x):
self.__res /= x
return self
def show(self):
self.__say('等于: %d' % self.__res)
print('等于: %d' % self.__res)
@property
def result(self):
return self.__res
c1 = Calculator(0)
c1.jia(2).cheng(10).jian(2).chu(2).show()
就先这样,遇到别的再补充。