Python入门8_方法,属性,迭代器
来源:互联网 发布:淘宝 武士刀 编辑:程序博客网 时间:2024/06/03 19:20
1,继承机制:
上章讲到了class man(human): 这个表示类man继承human。下面介绍super( ),一个例子如下:
>>> class human: def __init__(self): self.gender = 'man' def say(self): if self.gender == 'man': print 'I am a man' else: print 'I am a women'>>> class man(human): def __init__(self): self.name = 'Jack Ma'>>> f = man()>>> f.name'Jack Ma'>>> f.genderTraceback (most recent call last): File "<stdin>", line 1, in <module>AttributeError: man instance has no attribute 'gender'>>> f.say()Traceback (most recent call last): File "<stdin>", line 1, in <module>AttributeError: man instance has no attribute 'gender'
做了如下修改:
>>> class man(human): def __init__(self): super(man,self).__init__() self.name = 'Jack Ma'>>> f = man()>>> f.say()TypeError: super() argument 1 must be type, not classobj# 这个python2会报错,python3没有问题
2,静态方法(可以直接通过类名调用的方法):
>>> class myclass{ @staticmethod def mmm(): print "mmm" @classmethod def nnn(): print "nnn"}>>> myclass.mmm()#直接通过类名调用
3,迭代器:
#迭代器使用自己的方法:>>> class fibolacci: def __init__(self): self.a = 0 self.b = 1 def next(self): self.a,self.b = self.b,self.a+self.b def __iter__(self): return self>>> fib = fibolacci()>>> for f in fib: if(f>1000): print f break1597#for循环内部事实上就是先调用iter()把Iterable变成Iterator在进行循环迭代的>>> x = [1,3,4]>>> i = iter(x)>>> next(i)1>>> next(i)3>>> next(i)4#如果上面那个不好理解,那下面这个在网上找的可能更好理解:class Fabs(object): def __init__(self,max): self.max = max self.n, self.a, self.b = 0, 0, 1 #特别指出:第0项是0,第1项是第一个1.整个数列从1开始 def __iter__(self): return self def next(self): if self.n < self.max: r = self.b self.a, self.b = self.b, self.a + self.b self.n = self.n + 1 return r raise StopIteration()print Fabs(5)for key in Fabs(5): print key
阅读全文
0 0
- Python入门8_方法,属性,迭代器
- ruby入门_属性
- python基础教程_学习笔记11:魔法方法、属性和迭代器
- python-对象、私有属性_方法、继承(多重继承)、重写
- python入门_简介
- ruby入门_方法
- python学习_入门(2)
- Python入门6_抽象
- Python 进阶_OOP 面向对象编程_类属性和方法
- Python 进阶_OOP 面向对象编程_实例属性和方法
- Python中的特殊方法、属性和迭代器
- Python属性和方法
- Python属性和方法
- Python属性和方法
- Python魔法方法--属性
- ruby入门_类方法
- ruby入门_构造方法
- 1.Python深入_对象的属性
- Express Install
- 存储过程分页
- Shopping 倍增
- SWPU暑假第一场训练赛题解
- html dom创建表格
- Python入门8_方法,属性,迭代器
- BZOJ1691: [Usaco2007 Dec]挑剔的美食家
- TabLayout+ViewPager使用
- Hibernate入门之ORM概述
- Windows Practice_文件搜索器(三)_线程池
- 77. Combinations
- 如何调整linux窗口大小-安装VMWare Tools
- [网络流24题] No3_最小路径覆盖问题
- 分享我的第一次Selenium自动化测试框架开发过程