zoukankan      html  css  js  c++  java
  • python学习手册笔记——29.运算符重载

    00.常见的运算符重载方法
    方法 重载 调用
    __init__ 构造函数 对象建立:X = Class(args)
    __del__ 析构函数 X对象收回
    __add__ 运算符+ 如果没有__iadd_,X + Y, X += Y
    __or__ 运算符|(位OR) 如果没有_ior_,X|Y,X|=Y
    __repr__,__str__ 打印,转换 print(x)、repr(x)、str(x)
    __call__ 函数调用 X(*args, **kargs)
    __getattr__ 点号运算 X.undefined
    __setattr__ 属性赋值语句 X.any = value
    __delattr__ 属性删除 del X.any
    __getattribute__ 属性获取 X.any
    __getitem__ 索引运算 X[key],X[i:j],没有__iter__时的for循环和其他迭代器
    __setitem__ 索引赋值语句 X[key] = value, X[i:j] = sequence
    __delitem__ 索引和分片删除 del X[key], del X[i:j]
    __len__ 长度 len(X),如果没有__bool__,真值测试
    __bool__ 布尔测试 bool(X),真测试
    __lt____gt____le____ge____eq____ne__ 特定的比较  
    __radd__ 右侧加法  
    __iadd__ 实地加法  
    __iter__,__next__ 迭代环境  
    __contains__ 成员关系测试  
    __index__ 整数值  
    __enter__,__exit__ 环境管理器  
    __exit__ 环境管理其  
    __get__,__set__ 描述符属性  
    __delete__    
    __new__ 创建 在__nint__之前创建对象

    02.Property内置函数允许我们把方法和特定类属性上的获取和设置操作关联起来。
    描述符提供了一个协议,把一个类的__get__和__set__方法域对特定类属性的访问关联起来。

    01.
    __getattr__:时拦截属性点号运算。当通过未定义(不存在)属性名臣和实例进行点号运算时,就会用属性名臣作为字符串调用这个方法。
    __setatrr__:会拦截所有属性的赋值语句
    __getattribute__:方法拦截所有的属性获取,而不只是那些未定义的
    __repr__:返回实例的字符串表达形式的__repr__方法。
    __str__
    __radd__:+运算符右侧使用实例对象
    __iadd__:原处加法
    __call__:如果定义了,Python就会未实例应用函数调用表达式运行__call__方法。
    __it__:
    __gt__:
    __bool__:获取一个直接的布尔值,然后,如果没有该方法,就尝试__len__类根据对象的擦汗高难度确定一个真值。
    __len__:一个非空对象看作是真
    __del__:每当实例产生时,就会调用__init__构造函数。每当实例空间被收回时(在立即收集时),他的对立面__del__,也就是析构函数,就会自动执行。

  • 相关阅读:
    自动化测试面试题及答案
    Jmeter读取CSV数据显示EOF问题
    C++中类继承public,protected和private关键字作用详解及派生类的访问权限
    汇编实验:寻址方式在数据访问中的应用
    集成运放综合应用的仿真模拟
    集成运算放大电路线性区运用的仿真实验
    共射/共源放大电路的仿真实验
    二极管特性的仿真实验
    各主流排序算法详细介绍(时间/空间复杂度,适用范围和稳定性)
    三大自由之二 部分
  • 原文地址:https://www.cnblogs.com/aixiaoxiaoyu/p/11238588.html
Copyright © 2011-2022 走看看