Day8之面向对象复习2
2017-11-28 23:14
281 查看
#!/usr/bin/python3 # -*-coding:UTF-8-*- class Student(object): def __init__(self, name): self.name = name def __str__(self): return '学生名称:%s' % self.name # 定义__str__()方法后的输出 print(Student('xiaomeng')) # __iter__() class Fib(object): def __init__(self): self.a, self.b = 0, 1 # 初始化两个计数器a、b def __iter__(self): return self # 实例本身就是迭代对象,故返回自己 def __next__(self): self.a, self.b = self.b, self.a + self.b # 计算下一个值 if self.a > 100000: # 退出循环条件 raise StopIteration() return self.a # 返回下一个值 for n in Fib(): print(n) # __getitem__ class Fib1(object): def __getitem__(self, n): a, b = 0 ,1 for x in range(n): a, b = b, a + b return a print(Fib1()[1]) # __getattr__ class Student(object): def __init__(self): self.name = 'xiaomeng' def __getattr__(self, attr): if attr == 'score': return 95 def __call__(self): print('名称:%s' % self.name) stu = Student() print(stu.name) print(stu.score) # __call__直接在实例本身调用 stu() # 判断一个是否可以调用Callable print(callable(stu))
相关文章推荐
- Day8之面向对象复习1
- java面向对象基础复习
- Java面向对象复习笔记
- C++面向对象复习(二)——析构函数
- Java复习笔记+经验总结-02 面向对象基础
- 复习java面向对象(继承)
- php面向对象笔记8 抽象类与延迟绑定复习和接口
- C++面向对象复习(三)——构造函数与析构函数的调用顺序
- java面向对象复习
- Java面向对象复习1
- 面向对象复习
- 【学习笔记】java面向对象复习01
- java面向对象复习总结(异常)
- JavaSE基础复习二:面向对象知识点
- 面向对象问题复习
- 软件设计师复习笔记__面向对象基础
- javascript复习一 JavaScript的面向对象
- 【学习笔记】java面向对象复习03
- 软件设计师复习笔记__面向对象基础
- java复习二:面向对象