Python object类中的特殊方法代码讲解

  • Post category:Python

Python object类中的特殊方法代码讲解

Python语言中,所有的对象都继承自object类。这个类中定义了许多特殊方法,也叫魔术方法,用来实现某些特定功能。这些方法有时候也被称作双下方法,因为它们的名称都以双下划线(__)开头和结尾。

下面是几个常用的特殊方法。

__init__方法

__init__方法是Python中最常用的特殊方法之一,也是构造方法。这个方法在创建一个新对象时被调用。我们可以用__init__方法来初始化对象的成员变量,以及完成一些其他的初始操作。

示例代码:

class Student:
    def __init__(self, name, age, score):
        self.name = name
        self.age = age
        self.score = score

stu = Student("Tom", 20, 90)
print(stu.name)
print(stu.age)
print(stu.score)

__str__方法

__str__方法是用来返回对象的字符串表示形式。当我们使用print函数或者str()函数打印一个对象时,Python会自动调用这个方法来获取对象的字符串表示。我们可以在__str__方法中定制对象的字符串形式。

示例代码:

class Student:
    def __init__(self, name, age, score):
        self.name = name
        self.age = age
        self.score = score

    def __str__(self):
        return "name:{}, age:{}, score:{}".format(self.name, self.age, self.score)

stu = Student("Tom", 20, 90)
print(stu)

__getitem__方法

__getitem__方法是用来获取一个对象的索引值的。当我们使用对象[索引值]的形式来获取元素时,Python会自动调用__getitem__方法。我们可以在这个方法中实现对象可迭代的功能。

示例代码:

class MyList:
    def __init__(self, lst):
        self.lst = lst

    def __getitem__(self, index):
        return self.lst[index]

    def __len__(self):
        return len(self.lst)

my_list = MyList([1, 2, 3, 4, 5])
print(my_list[2])
print(len(my_list))

总结

以上介绍了Python对象中常用的三个特殊方法__init__、strgetitem,它们的作用分别是初始化对象、定制对象的字符串表示和实现对象的可迭代功能。如果我们要在自己的程序中使用对象,就必须掌握这些特殊方法。