c语言编程笔录

首页 >   > 笔记大全

笔记大全

python笔记之特殊方法python中的方法

更新时间:2023-11-25

特殊方法是什么?

Python中的特殊方法告诉我们如何为对象定义我们自己的行为。这些方法是在类定义中使用双下划线开头和结尾的方法,例如 __init__ 和 __str__ 。特殊方法也被称为魔术方法,因为它们可以让我们直接与对象交互,例如比较,计算等。

class MyClass:
    def __init__(self, a):
        self.a = a

    def __add__(self, other):
        return MyClass(self.a + other.a)

    def __str__(self):
        return f"MyClass({self.a})"

x = MyClass(1)
y = MyClass(2)
z = x + y
print(z)

常用的特殊方法

以下是一些常见的特殊方法,当我们自定义类时,可以定义以下方法以修改类的行为:

  • __init__ : 定义类的构造函数,当创建对象时调用。
  • __str__ : 定义对象的字符串表示形式,用于print()输出和str()转换。
  • __repr__ : 定义对象的字符串表示形式,用于交互式控制台输出对象以及调用repr()函数。
  • __len__ : 定义对象的长度,用于支持len()函数。
class MyClass:
    def __init__(self, x, y):
        self.x = x
        self.y = y

    def __str__(self):
        return f"MyClass({self.x}, {self.y})"

    def __repr__(self):
        return f"MyClass({self.x}, {self.y})"

    def __len__(self):
        return self.x + self.y

obj = MyClass(3, 5)
print(obj)  # 输出 MyClass(3, 5)
print(repr(obj))  # 输出 MyClass(3, 5)
print(len(obj))  # 输出 8

Python中的方法

Python中的方法是在类定义中声明的函数,它们是对象中的函数。在调用对象方法时,第一个参数是self,它是指向对象本身的引用。

class MyClass:
    def print_hello(self):
        print("Hello!")

obj = MyClass()
obj.print_hello()  # 输出 "Hello!"

有时我们希望对象方法能够改变对象本身的状态。我们可以使用实例变量来存储和修改对象状态。

class Car:
    def __init__(self, color, model):
        self.color = color
        self.model = model
        self.mileage = 0

    def drive(self, distance):
        self.mileage += distance

car1 = Car("red", "sedan")
print(car1.color)  # 输出 red
car1.drive(100)
print(car1.mileage)  # 输出 100

总结

Python中的特殊方法可以让我们定义自己的类行为。对象方法是访问和修改对象状态的工具。这些工具可以使我们的代码更加模块化,易于维护和理解。