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__、str、getitem,它们的作用分别是初始化对象、定制对象的字符串表示和实现对象的可迭代功能。如果我们要在自己的程序中使用对象,就必须掌握这些特殊方法。