python编程

Python:魔法函数

2020-07-19  本文已影响0人  dex0423

1. 简介

1.1. 什么是魔法方法

1.2. 调用方式

2. 简单实例

class Compalny(object):
    # 类的初始化方法,获取参数 employee_list 这个列表
    def __init__(self, employee_list):
        self.employee = employee_list

    # 对 self.employee 这个 list 使用 self[key] 的方式进行读取操作
    def __getitem__(self, item):
        return self.employee[item]

company = Compalny(["tom", "bob", "jane"])

# 遍历 company 中所有员工
for em in company:
    print(em)

print('=' * 50)

# 获取 company 中的第三个元素
print(company[2])

3. 常用魔法方法

>>> class User():
...     def __init__(self, name):
...         self.name = name
...     def __repr__(self):
...         return "user with name : "+ self.name
...
>>> user = User(name="zhangsan")
>>> print(user)
user with name : zhangsan      # 自动打印出 __repr__ 方法 return 的文字 

-- __ str __:打印对象会触发;
-- __ call __:对象()触发,类也是对象 类(),类的实例化过程调用元类的call
-- __ new __:在类实例化会触发,它比init早(造出裸体的人,init穿衣服);
-- __ del __:del 对象,对象回收的时候触发;
-- __ setattr __ , __ getattr __:(.拦截方法),当对象.属性--》赋值会调用setattr,如果是取值会调用getattr;
-- __ getitem __ , __ setitem __:([]拦截);
-- __ enter __ 和 __ exit __ 上下文管理器;

上一篇下一篇

猜你喜欢

热点阅读