class 中写object 可以继承多种属性。类似于命名空间。
yield 小推土机是一个关键词,迭代器,每次可以记住在内存的位置
理解它的最佳网址
yield 的作用就是把一个函数变成一个 generator,带有 yield 的函数不再是一个普通函数,Python 解释器会将其视为一个
generator,调用 fab(5) 不会执行 fab 函数,而是返回一个 iterable 对象!在 for
循环执行时,每次循环都会执行 fab 函数内部的代码,执行到 yield b 时,fab 函数就返回一个迭代值,下次迭代时,代码从
yield b 的下一条语句继续执行,而函数的本地变量看起来和上次中断执行前是完全一样的,于是函数继续执行,直到再次遇到 yield。
raise 可以报异常
class中的迭代器 next应该是替换为
def __next__(self):
关于使用迭代器的应用,可以加快打开数据多的文档:
def read_in_block(file_path):
BLOCK_SIZE = 1024
with open(file_path, 'r') as f:
while True:
block = f.read(BLOCK_SIZE)
if block:
yield block
else:
return # 若读到文件末尾,则退出
for block in read_in_block(file_path):
print(block)
import matplotlib.pyplot as plt
import numpy as np
x = [] # 设定列表
y = []
with open(xfile_path) as f:
for line in f:
x.append(float(line)) # 将数据进行转化,否则默认是字符串
with open(yfile_path) as f:
for line in f:
y.append(float(line))
X = x
Y = y
T = np.arctan2(Y,X)#for color later on # 设定颜色?
plt.scatter(X,Y,s = 75,c ='b',alpha =0.3) #配置散点图
# 配置坐标轴
plt.xlim((0,1)) #确定划分区域
plt.xticks([])#ignore xticks 坐标轴的显示
plt.ylim((0,1))
plt.yticks([])#ignore yticks 坐标轴的显示
plt.show() #让它显示