魔法函数是在python中以双下划线开头并且以双下划线结尾的内置函数。它可以任意定义某个类的特性,这些方法在进行特定的操作时会自动被调用。
最常见的魔法函数就是构造函数__init__(),是用来初始化类的。
class Employee:
empCount = 0
def __init__(self, name, salary):
self.name = name
self.salary = salary
Employee.empCount += 1
两个常用的魔法函数__len__()和__getitem__():
class Company(object):
def __init__(self, employee_list):
self.employee = employee_list
def __getitem__(self, item):
return self.employee[item]
def __len__(self, item):
return len(self.employee)
company = Company(['tom', 'bob', 'jane'])
print(len(company.employee))
for em in company:
print(em)