"""
重新实现字符串之间的加减乘除。
以相加为例:
字符串A和字符串B相加,
先求字符串A的所有字符ASCII码之和,
再求字符串B的所有字符ASCII码之和,
然后将两个和相加,即为两个字符串相加。
相减是两个和相减
相乘是两个和相乘
相除是两个和相除
"""
class StrASCII(str):
"""
继承自str类的StrASCII类,用于计算字符串中字符的ASCII值总和,并提供基本运算符重载。
Attributes:
total: int, 字符串中所有字符的ASCII值总和。
"""
def __init__(self, s: str):
"""
初始化StrASCII对象,计算并存储字符串s中字符的ASCII值总和。
Parameters:
s: str, 输入的字符串。
"""
self.total = 0
for char in s:
self.total += ord(char)
def __add__(self, right):
"""
实现加法操作,将两个StrASCII对象的ASCII值总和相加。
Parameters:
right: StrASCII, 右操作数。
Returns:
StrASCII, 新的StrASCII对象,其total值为两个操作数total值之和。
"""
return self.total + right.total
def __sub__(self, right):
"""
实现减法操作,计算两个StrASCII对象的ASCII值总和之差。
Parameters:
right: StrASCII, 右操作数。
Returns:
StrASCII, 新的StrASCII对象,其total值为两个操作数total值之差。
"""
return self.total - right.total
def __mul__(self, right):
"""
实现乘法操作,计算两个StrASCII对象的ASCII值总和的乘积。
Parameters:
right: StrASCII, 右操作数。
Returns:
StrASCII, 新的StrASCII对象,其total值为两个操作数total值的乘积。
"""
return self.total * right.total
def __truediv__(self, right):
"""
实现除法操作,计算两个StrASCII对象的ASCII值总和的比值。
Parameters:
right: StrASCII, 右操作数。
Returns:
StrASCII, 新的StrASCII对象,其total值为两个操作数total值的比值。
"""
return self.total / right.total
def __floordiv__(self, right):
"""
实现整除操作,计算两个StrASCII对象的ASCII值总和的整数比值。
Parameters:
right: StrASCII, 右操作数。
Returns:
StrASCII, 新的StrASCII对象,其total值为两个操作数total值的整数比值。
"""
return self.total // right.total
if __name__ == '__main__':
a = StrASCII('Hello')
b = StrASCII('World')
print(f"a+b={a + b}")
print(f"a-b={a - b}")
print(f"a*b={a * b}")
print(f"a/b={a / b}")
print(f"a//b={a // b}")
加减乘除:重新实现字符串之间的加减乘除。
未经允许不得转载:创想未来 » 加减乘除:重新实现字符串之间的加减乘除。

创想未来
评论前必须登录!
注册