c语言编程笔录

首页 >   > 笔记大全

笔记大全

python魔法方法之算术运算Python函数运算

更新时间:2023-10-07

Python魔法方法之算术运算

Python 魔法方法中包含一些用于定义类的算术运算的特殊方法。这些方法是与算术运算符对应的方法,例如__add__对应‘+’操作符, __sub__对应‘-’操作符等。在编写特定类时,可以使用这些魔法方法重载这些运算符,让类似于加法和减法的操作成为可能。下面是一个示例,展示如何使用Python魔法方法中的__add__方法重载‘+’运算符。


class Vector:
    def __init__(self, x, y):
        self.x = x
        self.y = y

    def __add__(self, other):
        return Vector(self.x + other.x, self.y + other.y)

v1 = Vector(2, 4)
v2 = Vector(5, -2)
v3 = v1 + v2
print(v3.x, v3.y)  # Expected output: 7 2

在这个示例中,我们定义了一个向量类Vector,并使用__add__魔法方法重载了‘+’操作符使得向量加法成为可能。在实例化的向量对象中,我们记录了当前向量的x和y坐标,通过__add__方法,我们可以在向量间实现相加的操作并返回结果。

Python函数运算

Python中的函数可以被视为一个返回值的黑盒,我们将输入值传递给它并获得输出结果。可以通过函数定义一些数学运算,以产生更复杂的结果。在下面的示例中,我们定义了一个名为‘square’的函数,这个函数接收一个数字并返回其平方值。


def square(x):
    return x * x
print(square(3))  # Expected output: 9

在这个简单的示例中,我们定义了一个名为square的函数,并接收一个数字作为参数x。函数的返回值为x的平方值。当我们调用这个函数并传入3时,我们可以获得预期的输出结果9。

Python魔法方法之比较运算

除了算术运算之外,Python还包含一些用于比较运算符的魔法方法。这些方法用于重载比较运算符,例如‘==’和‘!=’操作符。下面是一个示例,展示如何在类中使用__eq__魔法方法来重载‘==’运算符。


class Point:
    def __init__(self, x, y):
        self.x = x
        self.y = y

    def __eq__(self, other):
        if isinstance(other, Point):
            return self.x == other.x and self.y == other.y
        return False

p1 = Point(2, 3)
p2 = Point(2, 3)
print(p1 == p2)  # Expected output: True

在这个示例中,我们定义了一个点类Point,并重载了‘==’运算符,使得两个点对象可以相等。我们通过检查点对象的x和y坐标是否相等来重载比较运算符,检查时使用了isinstance函数来确保比较对象是同一类型。

Python函数之高阶函数

高阶函数是一种将函数作为参数传递的函数或将函数作为返回值的函数。在Python中,高阶函数可以用于简化代码、提高代码的可读性、使代码更具可维护性和复用性等。下面是一个示例,展示如何使用高阶函数来计算一个数字列表中所有数字的总和。


def add_numbers(number_list):
    return sum(number_list)

number_list = [1, 2, 3, 4, 5]
print(add_numbers(number_list))  # Expected output: 15

在这个示例中,我们定义了一个名为add_numbers的函数,这个函数接收一个数字列表并使用sum函数计算列表中所有数字的总和。在调用函数时,我们传递一个预定义的数字列表,函数计算并返回结果15。