`
f002489
  • 浏览: 273082 次
  • 性别: Icon_minigender_1
  • 来自: 成都
社区版块
存档分类
最新评论

Python运算符重载__类常用的内置方法

阅读更多

 

 

http://xukaizijian.blog.163.com/blog/static/170433119201111894228877/

 

http://blog.csdn.net/adupt/archive/2009/09/14/4551910.aspx

 

 

 

在Python语言中提供了类似于C++的运算符重在功能:
一下为Python运算符重在调用的方法如下:
Method        Overloads        Call for
__init__        构造函数        X=Class()
__del__        析构函数        对象销毁
__add__        +                X+Y,X+=Y
__or__        |                X|Y,X|=Y
__repr__        打印转换        print X,repr(X)
__str__        打印转换        print X,str(X)
__call__        调用函数        X()
__getattr_    限制            X.undefine
__setattr__    取值            X.any=value
__getitem__    索引            X[key],
                            
__len__        长度            len(X)
__cmp__        比较            X==Y,X<Y
__lt__        小于            X<Y
__eq__        等于            X=Y
__radd__        Right-Side +        +X
__iadd__        +=                X+=Y
__iter__        迭代            For In

 

 内置方法  说明
 __init__(self,...)  初始化对象,在创建新对象时调用
 __del__(self)  释放对象,在对象被删除之前调用
 __new__(cls,*args,**kwd)  实例的生成操作
 __str__(self)  在使用print语句时被调用
 __getitem__(self,key)  获取序列的索引key对应的值,等价于seq[key]
 __len__(self)  在调用内联函数len()时被调用
 __cmp__(stc,dst)  比较两个对象src和dst
 __getattr__(s,name)  获取属性的值
 __setattr__(s,name,value)  设置属性的值
 __delattr__(s,name)  删除name属性
 __getattribute__()  __getattribute__()功能与__getattr__()类似
 __gt__(self,other)  判断self对象是否大于other对象
 __lt__(slef,other)  判断self对象是否小于other对象
 __ge__(slef,other)  判断self对象是否大于或者等于other对象
 __le__(slef,other)  判断self对象是否小于或者等于other对象
 __eq__(slef,other)  判断self对象是否等于other对象
 __call__(self,*args)  把实例对象作为函数调用
分享到:
评论

相关推荐

    Python正确重载运算符的方法示例详解

    在Python中,运算符重载是指通过定义特定的方法来改变类的实例与其他对象进行运算的方式。这为开发者提供了一种使自定义类型的行为更类似于内置类型的手段。 1. **不能重载内置类型的运算符**:Python不允许重载...

    Python运算符重载用法实例

    首先,让我们深入理解Python运算符重载的基本概念。在Python中,当运算符应用于自定义类的对象时,Python会尝试调用一些特殊方法(也称为魔术方法)。例如,`__add__` 方法对应于加法运算符 `+`。当我们执行 `a + b`...

    python-运算符重载.rar

    在Python中,运算符重载是通过定义特殊方法来实现的。这些特殊方法的名称以两个下划线开头和结尾,例如`__add__`、`__sub__`、`__mul__`等,它们对应于加法、减法和乘法等运算符。当运算符被用于自定义类型时,...

    Python运算符重载用法实例分析

    Python运算符重载是面向对象编程中的一个重要特性,它允许我们自定义运算符的行为,使得类的对象能够以自然的方式进行操作。通过重载运算符,我们可以使自定义类型的对象支持像整数、字符串等内置类型一样的操作。...

    基于python中__add__函数的用法

    在Python中,运算符重载是面向对象编程的一个重要概念,它允许开发者为自定义的数据类型赋予常规运算符的含义,从而使得这些数据类型能够像内置类型一样使用运算符。其中,__add__函数是一种魔术方法,用于重载加号...

    python重载比较运算符.docx

    总之,Python的运算符重载提供了一种强大的机制,使得我们能够自定义类的比较逻辑,使得自定义对象间的比较变得灵活且具有语义意义。这不仅增加了代码的表达力,也使得复杂的数据结构在比较时更加直观和方便。

    正确重载运算符1

    在Python编程语言中,运算符重载是一种允许用户自定义对象使用中缀和一元运算符的技术。Python在保持灵活性、可用性和安全性之间做了权衡,对于运算符重载有以下几点需要注意: 1. **不支持重载内置类型运算符**:...

    Python3 操作符重载方法示例

    实际上,“运算符重载”只是意味着在类方法中拦截内置的操作……当类的实例出现在内置操作中,Python自动调用你的方法,并且你的方法的返回值变成了相应操作的结果。以下是对重载的关键概念的复习: 运算符重载让类...

    Python:__eq__和__str__函数的使用示例

    `__eq__` 方法用于重载 Python 的等于运算符 `==`。当我们比较两个对象是否相等时,Python 默认会检查它们的内存地址是否相同。然而,有时我们希望比较的是对象的属性值而不是它们的内存位置。例如,在上面的例子中...

    python-daquan.rar_python tutorials_笔记

    7. **面向对象编程**:Python支持面向对象编程,包括类的定义、对象的创建和继承、方法重载等特性。 8. **文件操作**:学习如何打开、读取、写入和关闭文件,是任何编程语言中不可或缺的部分。 9. **标准库**:...

    python程序设计基础教程骆焦煌-Python程序设计基础教程.pdf

    第六章面向对象编程,详细阐述了类和对象的概念,类的属性和方法(包括静态方法和实例方法)、继承、重载(方法重载和运算符重载)。第七章介绍了图形用户界面的设计,使用Tkinter库,包括各种控件的使用、界面布局...

    python特殊函数

    在Python编程语言中,特殊函数(也称为魔术方法或双下划线方法)提供了一种机制,使开发人员能够为自定义类实现特定的行为。这些特殊函数通常以双下划线(`__`)开头并以双下划线结束,如`__init__`、`__str__`等。...

    Fluent_Python 高清带书签

    - 运算符重载:通过运算符重载,可以在用户定义的类中定义或重定义常用运算符(如加号`+`)的行为,从而实现更直观的操作接口。 - 多重继承:虽然多重继承在许多语言中可能引起复杂性和潜在的问题,但在Python中,...

    Python语言入门——类

    Python允许我们通过定义特殊的方法来重载内置的操作符。这些方法通常以双下划线(`__`)开头和结尾,例如`__add__`用于重载加法运算符(`+`)。这使得我们可以通过类似内置类型的语法来操作自定义对象。 例如,下面...

    Python 入门级书籍

    - **运算符重载**:Python支持运算符重载,即可以通过特殊方法来自定义类中运算符的行为,这为面向对象编程带来了很大的灵活性。 - **多重继承**:虽然多重继承可能会带来复杂性,但Python提供了清晰的方式来处理...

    Python实现扩展内置类型的方法分析

    本文实例讲述了Python实现扩展内置类型...下面例子通过将list对象作为嵌入类型,实现集合对象,并增加了一下运算符重载。这个类知识包装了Python的列表,以及附加的集合运算。 class Set: def __init__(self, value=

    python书籍

    除了构造与初始化相关的魔法方法外,还有许多其他的魔法方法可以用来实现特定的功能,例如比较、运算符重载等。 ##### 4.1 比较操作 - **`__eq__`**:定义等于操作符`==`的行为。 - **`__ne__`**:定义不等于操作...

Global site tag (gtag.js) - Google Analytics