1

作为代数结构的 Python 类应该实现的接口是否已经有任何标准?我想让我的代码更通用。

例如,数字和方阵都是具有乘法和一的半群。如果他们实现.one()返回标识元素的方法*,我可以通过对两个类的对象进行平方来实现求幂:

def exp_by_squaring(x, n):
    result = x.one() # <--
    while n > 0:
        if n % 2 == 1:
            result *= x
        x = x * x
        n = n // 2
    return result

此外,该函数可以与任何类的对象正常工作,这些对象是具有乘法和一个的半群(假设该类实现了这样的接口),无论它们是否为数字。

我知道,我可以为此目的引入自己的界面(就像我在示例中所做的那样),但我想坚持现有的解决方案(如果可能的话)。

4

0 回答 0