运算符重载
来源:互联网 发布:捰体p图软件 编辑:程序博客网 时间:2024/05/16 06:52
#-*-coding:utf-8-*-'''Created on 2015年11月14日@author: Zroad'''"""一、运算符重载的概念:1、类方法中拦截内置的操作2、当类的实例处置内置操作,Python自动调用该方法""""""二、内置操作符与类方法对应关系:__init__ -> 构造函数,X = Class(args)__del__ -> 析构函数,X对象被回收__add__ -> 运算符+,无__iadd__,X+Y,X+=Y__or__ -> 运算符|,X|Y,X |= Y__str__ -> 转换 , str(X)__repr__ -> 打印 , print(X),repr(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]__setitem__ -> 索引赋值,X[key] = value X[i:j] = sequence__delitem__ -> 索引和分片删除 del X[key], del X[i:j]__len__ -> 长度, len(X)__bool__(__nonzero__ py2.6中), ->bool(X)__lt__,__gl__ ->比较运算符, X < Y, X > Y__le__,__ge__, ->比较运算符,X <= Y,X >= Y__eq__.__ne__, ->比较运算符, X == Y,X != Y__radd__, -> 右侧加法, Other + X__iadd__, -> 加强加法,X += Y__contains__, ->成员关系测试, item in X__index__, -> 整数值,hex(X),bin(X),oct(X)__new__, -> 在__init__之前创建对象""""""三、运算符重载实例,索引、分片、自定义迭代器"""#1、重载索引class Indexer(object): def __getitem__(self,index): return index ** 2X = Indexer()print ("X[5]=",X[5]) #X[5]= 25#2、属性引用class Empty(object): def __getattr__(self,attrname): #访问未定义属性时执行该方法 if attrname == "age": return 40 else: raise AttributeError,attrnamee = Empty()print "e.age = ",e.age #print "e.name = ",e.name class AccessControl(object): def __setattr__(self,attrname,value): if attrname == "age": self.__dict__[attrname] == value else: raise AttributeError,attrname + "not allowed!"a = AccessControl()a.age = 40a.name = "zr"
0 0
- 运算符重载 [++,--,+,<<; &&,||(不可重载)]
- 重载之运算符重载
- 重载赋值运算符
- C++运算符重载
- 运算符重载
- 运算符重载总结
- 运算符重载例子
- 运算符重载
- 运算符重载
- 基础:运算符重载
- 运算符重载
- 运算符重载
- 重载赋值运算符
- C#运算符重载
- C++-运算符重载
- 重载赋值运算符
- 运算符重载
- 有关运算符重载
- 面向切面编程(AOP)原理以及Helloworld
- 报错:1130-host ... is not allowed to connect to this MySql server 开放mysql远程连接 不使用localhost
- Day 7(11.14):(7)一些语法要素
- MySQL for Mac安装和启动
- hdoj 5500 Reorder the Books 【规律题】
- 运算符重载
- JAVA中Action层, Service层 ,modle层 和 Dao层的功能区分
- Js:offsetWidth的Bug
- Mac搭建web开发环境
- 文章标题
- Day 7(11.14):(8)用户自定义函数
- HDU 5563 Clarke and five-pointed star(判断正五边形)——BestCoder Round #62(div.1 div.2)
- 第一个高德地图的Web程序
- Genymotion所创建虚拟机无法启动,提示查看日志