📜  绝对值python(1)

📅  最后修改于: 2023-12-03 15:27:36.401000             🧑  作者: Mango

绝对值Python

Python中有一个内置函数叫作abs(),它能够返回一个数的绝对值。

用法
abs(number)

参数:

  • number:要求绝对值的数。参数可以是整数、浮点数或者具有__abs__()方法的任意Python对象。

返回值:

  • 带有number绝对值的数。

示例:

>>> abs(-1)
1
>>> abs(2.5)
2.5
实现

abs()函数使用了__abs__()方法。Python中所有的内置数字类型都实现了该方法,因此这些对象都可以被传入abs()中。如果number参数是一个自定义对象,则该对象必须实现自己的__abs__()方法以支持abs()函数。

以下是Python中数字类型内置的__abs__()方法的实现:

class int(int):

    ...

    def __abs__(self):
        if self >= 0:
            return self
        else:
            return -self


class float(float):

    ...

    def __abs__(self):
        if self >= 0.0:
            return self
        else:
            return -self


class complex(complex):

    ...

    def __abs__(self):
        return math.sqrt(self.real**2 + self.imag**2)

intfloat这样的原生数字类型有一个很简单的实现。如果数字为非负数,则返回该数字;否则返回其相反数。

而复数类型的__abs__()方法则计算距离点(0, 0)的欧几里得距离。这里计算欧几里得距离简化版的平方形式(code block):

def __abs__(self):
    return self.real**2 + self.imag**2
总结

abs()函数和__abs__()方法是Python中非常重要的一部分。他们可以处理各种不同类型的数字,并且可以让我们从数字中抽出大小/距离信息。该函数和方法的行为简单而明确,可大幅提高代码的可读性和可维护性。