Python中类的特殊方法详解
本文和大家分享的主要是python语言中类的特殊方法相关用法,希望对大家有帮助。
构造序列
1._len_(self)
2._getitem_(self,key)
3._setitem_(self,key,value)
4._delitem_(self,key)
程序演示:
myseq.py
class MySeq:
def __init__(self):
self.lseq = ["I","II","III","IV"]
def __len__(self):
return len(self.lseq)
def __getitem__(self,key):
if 0 <= key < 4:
return self.lseq[key]
if __name__ == '__main__':
m = MySeq()
for i in range(4):
print(m[i])
程序的运行结果为:
构造iter
1._iter_(self)
2._next_(self)
程序演示如下:
class MyIter:
def __init__(self,start,end):
self.count = start
self.end = end
def __iter__(self):
return self
def __next__(self):
if self.count < self.end:
r = self.count
self.count += 1
return r
else:
raise StopIteration
if __name__ == '__main__':
for i in MyIter(1,10):
print(i)
程序的运行结果为:
构造可比较类
1._it_()
2._le_()
3._gt_()
4._ge_()
5._eq_()
6._ne_()
程序演示如下:
mycmp.py
class MyIter:
def __init__(self,start,end):
self.count = start
self.end = end
def __iter__(self):
return self
def __next__(self):
if self.count < self.end:
r = self.count
self.count += 1
return r
else:
raise StopIteration
if __name__ == '__main__':
for i in MyIter(1,10):
print(i)
程序的运行结果为:
构造可运算类
1._add_()
2._sub_()
3._mul_()
4._div_()
程序演示如下:
class Point:
def __init__(self,x,y):
self.x = x
self.y = y
def __add__(self,oth):
return Point(self.x + oth.x , self.y + oth.y)
def info(self):
print(self.x,self.y)
if __name__ == '__main__':
pa = Point(1,2)
pb = Point(3,4)
pc = pa + pb
pc.info()
程序的运行结果为:
原文链接:http://www.maiziedu.com/wiki/python/special/
Python中类的特殊方法详解的更多相关文章
- Python中格式化format()方法详解
Python中格式化format()方法详解 Python中格式化输出字符串使用format()函数, 字符串即类, 可以使用方法; Python是完全面向对象的语言, 任何东西都是对象; 字符串的参 ...
- Python中的魔术方法详解
介绍 在Python中,所有以“__”双下划线包起来的方法,都统称为“Magic Method”,中文称『魔术方法』,例如类的初始化方法 __init__ ,Python中所有的魔术方法均在官方文档中 ...
- Python中的魔术方法详解(双下方法)
介绍 在Python中,所有以“__”双下划线包起来的方法,都统称为“Magic Method”,中文称『魔术方法』,例如类的初始化方法 __init__ ,Python中所有的魔术方法均在官方文档中 ...
- Python之list列表方法详解
# 列表test = [11, 22, 33, 44, 55, 22]# append方法,在test列表末尾增加一个元素# append(self, p_object) 参数:p_object:待添 ...
- Python 字符串的所有方法详解
name = "my name is {name} and my age is {age}" # 首字母大写 name.capitalize() # 统计某个字符的个数 name. ...
- python MethodType方法详解和使用
python 中MethodType方法详解和使用 废话不多说,直接上代码 #!/usr/bin/python # -*-coding:utf-8-*- from types import Metho ...
- Python 字符串方法详解
Python 字符串方法详解 本文最初发表于赖勇浩(恋花蝶)的博客(http://blog.csdn.net/lanphaday),如蒙转载,敬请保留全文完整,切勿去除本声明和作者信息. ...
- Python基础之 urllib模块urlopen()与urlretrieve()的使用方法详解。
Python urllib模块urlopen()与urlretrieve()的使用方法详解 1.urlopen()方法urllib.urlopen(url[, data[, proxies]]) ...
- Python调用C/C++动态链接库的方法详解
Python调用C/C++动态链接库的方法详解 投稿:shichen2014 这篇文章主要介绍了Python调用C/C++动态链接库的方法,需要的朋友可以参考下 本文以实例讲解了Python调用C/C ...
随机推荐
- 构建Logstash+tomcat镜像(让logstash收集tomcat日志)
1.首先pull logstash镜像作为父镜像(logstash的Dockerfile在最下面): 2.构建my-logstash镜像,使其在docker镜像实例化时,可以使用自定义的logstas ...
- Centos7中源码安装Nodejs
Step 1.确认服务器有nodejs编译及依赖相关软件,如果没有可通过运行以下命令安装. [root@BobServerStation local]# yum -y install gcc gcc- ...
- This application is modifying the autolayout engine from a background threa-线程错误
警告提示:This application is modifying the autolayout engine from a background thread, which can lead to ...
- 处理 httprequest post 编码问题
site :http://www.cnblogs.com/artwl/archive/2012/03/07/2382848.html 在JavaScript中推荐的做法是用encodeURI对URI的 ...
- android 多点
引用:http://blog.163.com/fenglang_2006/blog/static/13366231820108205274325/ 第一章摘要 在Linux内核支持的基础上,Andro ...
- JavaBean-DAO模式
一.信息系统的开发架构 客户层-------显示层-------业务层---------数据层---------数据库 1.客户层:客户层就是客户端,简单的来说就是浏览器. 2.显示层:JSP/S ...
- Excel中设置下拉列表的来源怎么选择其他工作表的内容
我就简单的说一下 SHEET1 的A1 要引用SHEET2的a1:a2的内容 在数据有效性里面选序列 输入=INDIRECT("sheet2!a1:a2") 或者你可以按楼上的意思 ...
- UCenter整合登陆时出现’Authorization has expired’错误(2014-03-13记)
原因之可能是两台机子的时间不一致导致.
- (转)将cocos2dx项目从VS移植到Eclipse
本文转自:http://www.cnblogs.com/Z-XML/p/3349518.html 引言:我们使用cocos2d-x引擎制作了一款飞行射击游戏,其中创新性地融入了手势识别功能.但是我 们 ...
- 安装和使用sass
在安装和使用sass之前,需要一些准备条件: 文件夹---存放.scss 或 .sass: 编辑器,我们推荐使用Sublime Text 2 或者 3: 你的电脑需要安装Ruby,因为sass是依赖于 ...