Warum kann für Nicht-Floats nicht "rund" definiert werden?

Bei einer einfachen Klasse wie

class Vector(object):
    def __init__(self, value):
        self.value = value
    def __abs__(self):
        return math.sqrt(sum([x**2 for x in self.value]))
    def __round__(self, *n):
        return [round(x,*n) for x in self.value]

warum tutabs(Vector([-3,4])) richtig nachgeben5 währendround(Vector([-3.1,4])) beschwert sich mit aTypeError: a float is required statt der gewünschten[-3,4], und wie kann das behoben werden?

Ich kenneround sollte normalerweise ein float zurückgeben, aber für einen Vektor wie in diesem Beispiel gibt es wahrscheinlich keine Mehrdeutigkeit bezüglich der möglichen Bedeutung. Warum kann dies nicht einfach überschrieben werden? Muss ich wirklich unterordnen?numbers.Realoder definierenVector(...).round(n) stattdessen?

Antworten auf die Frage(1)

Ihre Antwort auf die Frage