Python中操作符重载用法分析

 更新时间:2016年04月29日 11:22:41   作者:阿涵-_-  
这篇文章主要介绍了Python中操作符重载用法,较为详细的分析了Python操作符重载的功能,使用方法与相关注意事项,需要的朋友可以参考下

本文实例讲述了Python中操作符重载用法。分享给大家供大家参考,具体如下:

类可以重载python的操作符

操作符重载使我们的对象与内置的一样。__X__的名字的方法是特殊的挂钩(hook),python通过这种特殊的命名来拦截操作符,以实现重载。 python在计算操作符时会自动调用这样的方法,例如:

如果对象继承了__add__方法,当它出现在+表达式中时会调用这个方法。通过重载,用户定义的对象就像内置的一样。

在类中重载操作符

1、操作符重载使得类能拦截标准的python操作。
2、类可以重载所有的python的表达式操作符。
3、类可以重载对象操作:print,函数调用,限定等。
4、重载使得类的实例看起来更像内置的。
5、重载是通过特殊命名的类方法来实现的。

方法名        重载的操作说明        调用表达式
__init__    构造函数        创建对象:class()
__del__        析构函数        释放对象的时候
__add__        “+”            x + y
__or__        “|”            x | y
__repr__    打印,转换        print x, `x`
__call__    函数调用        X()
__getattr__    属性引用        x.undefined
__getitem__    索引            x[key],for循环,in测试
__setitem__    索引赋值        x[key] = value
__getslice__    分片            x[low:high]
__len__        长度            len(x)
__cmp__        比较            x == Y ,x < y
__radd__    右边的操作符"+"        非实例 + x

例子:

__getitem__拦截了所有的索引操作

>>> class indexer:
def __getitem__(self,index):
return index ** 2
>>> x = indexer()
>>> for i in range(5):
print x[i]  #x[i]将调用__getitem__(x,i)
0
1
4
9
16

更多关于Python相关内容可查看本站专题:《Python正则表达式用法总结》、《Python数据结构与算法教程》、《Python Socket编程技巧总结》、《Python函数使用技巧总结》、《Python字符串操作技巧汇总》、《Python入门与进阶经典教程》及《Python文件与目录操作技巧汇总

希望本文所述对大家Python程序设计有所帮助。

相关文章

  • 200 行python 代码实现 2048 游戏

    200 行python 代码实现 2048 游戏

    2048这个小游戏大家都不陌生,应该都玩过,之前已经在网上见过各个版本的2048实现了,有JAVA、HTML5等,今天我就给大家来一个我200 行python 代码实现的2048 游戏,感兴趣的朋友一起看看吧
    2018-01-01
  • Pytorch中Tensor与各种图像格式的相互转化详解

    Pytorch中Tensor与各种图像格式的相互转化详解

    这篇文章主要介绍了Pytorch中Tensor与各种图像格式的相互转化详解,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2019-12-12
  • Python7个爬虫小案例详解(附源码)上篇

    Python7个爬虫小案例详解(附源码)上篇

    这篇文章主要介绍了Python7个爬虫小案例详解(附源码)上篇,本文章内容详细,通过案例可以更好的理解爬虫的相关知识,七个例子分为了三部分,本次为上篇,共有二道题,需要的朋友可以参考下
    2023-01-01
  • Python通过递归函数输出嵌套列表元素

    Python通过递归函数输出嵌套列表元素

    这篇文章主要介绍了Python通过递归函数输出嵌套列表元素,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以参考下
    2020-10-10
  • 深入探究Python中的迭代器和生成器

    深入探究Python中的迭代器和生成器

    迭代器(Iterators)和生成器(Generators)是 Python 中最强大的功能之一,但也是新手最容易混淆的部分,本文将深入探讨这两种概念,以及它们在 Python 编程中的实际应用,需要的朋友可以参考下
    2023-06-06
  • python动态参数用法实例分析

    python动态参数用法实例分析

    这篇文章主要介绍了python动态参数用法,以实例形式较为详细的分析了Python中动态参数的功能及使用技巧,需要的朋友可以参考下
    2015-05-05
  • Python pymongo模块用法示例

    Python pymongo模块用法示例

    这篇文章主要介绍了Python pymongo模块用法,结合实例形式分析了Python中pymongo模块的安装与简单使用相关操作技巧,需要的朋友可以参考下
    2018-03-03
  • Python实现乱序文件重新命名编号

    Python实现乱序文件重新命名编号

    这篇文章主要为大家详细介绍一下Python的一个神操作,那就是实现乱序文件重新命名编号功能,文中的示例代码讲解详细,感兴趣的可以尝试一下
    2022-08-08
  • Python文件时间操作步骤代码详解

    Python文件时间操作步骤代码详解

    这篇文章主要介绍了Python文件时间操作步骤代码详解,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以参考下
    2020-04-04
  • python简单的函数定义和用法实例

    python简单的函数定义和用法实例

    这篇文章主要介绍了python简单的函数定义和用法,实例分析了Python自定义函数及其使用方法,具有一定参考借鉴价值,需要的朋友可以参考下
    2015-05-05

最新评论