Python魔法函数
一、什么是魔法函数
1、不使用魔法函数:
class Company(object):
def __init__(self, employee_list):
self.employee = employee_list
company = Company(["tom", "bob", "jane"])
employee = company.employee
for item in employee:
print(item)
运行结果:
tom
bob
jane
2、使用魔法函数:
class Company(object):
def __init__(self, employee_list):
self.employee = employee_list
def __getitem__(self, item):
print("item is %s" %item)
return self.employee[item]
company = Company(["tom", "bob", "jane"])
for item in company:
print(item)
运行结果:
item is 0
tom
item is 1
bob
item is 2
jane
item is 3
二、python数据模型对python的影响
1、魔法函数会直接影响到python的语法本身:
(1) 有影响的情况:
class Company(object):
def __init__(self, employee_list):
self.employee = employee_list
# def __getitem__(self, item):
# print("item is %s" %item)
# return self.employee[item]
company = Company(["tom", "bob", "jane"])
companys = company[:2]
for item in companys:
print(item)
运