python魔法函数的一些疑问
2015-07-17 09:53
579 查看
看了魔法函数,有一点疑问。1中需要用self.word才能执行,而2直接用self就可以执行。而1中Word继承了int基本类型,但在__new__时并没有什么卵用。当用
1.
2.
Word(“123”)来实例化时,看到的运算结果是以字符串形式来进行运算的,比如“123”*3=123123123。
1.
class Word(int): def __new__(cls, word): word = int(word) return int.__new__(cls,word) def __init__(self,word): self.word = word def __add__(self, other): return self.word+other def __sub__(self,other): return self.word-other def __mul__(self, other): return self.word*other def __div__(self, other): return sself.word/other def main(): a=Word(123) b=Word(12) print a-b if __name__ == '__main__': main()
2.
class Word(str): def __new__(cls, word): word = word.replace(" ","") return str.__new__(cls,word) def __init__(self,word): self.word = word def __gt__(self, other): return len(self)>len(other) def __lt__(self,other): return len(self)<len(other) def __ge__(self, other): return len(self)>=len(other) def __le__(self, other): return len(self)<=len(other) def __eq__(self, other): return len(self)==len(other) def main(): a=Word("foorrrdd") b=Word("sswwss") print a==b if __name__ == '__main__': main()
相关文章推荐
- python 读写excel表格
- numpy安装
- python-crfsuite API 中文
- Python的Django框架中的数据库配置指南
- 值得关注的10个python语言博客
- python assert
- Python开发入门与实战10-事务
- 在Python的Django框架中加载模版的方法
- zabbix通过python脚本实现邮件报警
- 浅谈python中截取字符函数strip,lstrip,rstrip
- Python中的If分支与循环
- Python常用函数笔记
- python
- 使用pip安装numpy库问题汇总
- Python之strip与split函数
- python正则表达式基础
- 用Python做一个模板引擎玩具
- [2015-07-16] python003
- 浅谈python中截取字符函数strip,lstrip,rstrip
- Python的Django框架中的数据库配置指南