第11章 类和对象
- 对象 = 属性 + 方法
- 需要用类来创建对象,同时,这样的对象叫做这个类的实例
- self参数
__init__()
方法:也称为构造方法,只要实例化一个对象,这个方法就会在对象被创建时自动调用- 私有变量:在变量名或函数名前面加上
__
两个下划线 - 继承:
语法:class 类名(被继承的类): ...
- 多重继承
- 嵌套
- 绑定
第12章 魔法方法
- 迭代器:
iter() 和 next()
把一个类作为一个迭代器使用需要在类中实现两个方法__iter__()
与__next__()
。
class MyNumbers:
def __iter__(self):
self.a = 1
return self
def __next__(self):
if self.a <= 20:
x = self.a
self.a += 1
return x
else:
raise StopIteration # StopIteration异常用于标识迭代的完成
myclass = MyNumbers()
myiter = iter(myclass)
for x in myiter:
print(x)
- 生成器:在 Python 中,使用了 yield 的函数被称为生成器(generator)。
以下实例使用 yield 实现斐波那契数列:
import sys
def fibonacci(n): # 生成器函数 - 斐波那契
a, b, counter = 0, 1, 0
while True:
if (counter > n):
return
yield a
a, b = b, a + b
counter += 1
f = fibonacci(10) # f 是一个迭代器,由生成器返回生成
while True:
try:
print (next(f), end=" ")
except StopIteration:
sys.exit()
执行以上程序,输出结果如下:
0 1 1 2 3 5 8 13 21 34 55
第13章
下述代码确保只有单独运行模块时,才会执行test()
if __name__ = '__main__':
test()