一:生成器:Generator是具有next方法的一个函数,
一个函数在执行的过程中产生一个迭代器,这个函数就是生成器,迭代器里面内容需要使用函数__next__()方法去读取,如:
def func(): with open("haproxy.cfg") as f: try: #正常执行的 时候 while True: line = next(f) print(line,end=‘‘) except StopIteration: #捕获到指定的异常抛出 print("已经完成") func() 执行结果: global log 127.0.0.1 local2 daemon maxconn 256 log 127.0.0.1 local2 info defaults log global mode http timeout connect 5000ms timeout client 50000ms timeout server 50000ms option dontlognull listen stats :8888 stats enable stats uri /admin stats auth admin:1234 frontend oldboy.org bind 0.0.0.0:80 option httplog option httpclose option forwardfor log global acl www hdr_reg(host) -i www.oldboy.org use_backend www.oldboy.org if www backend www.oldboy.org server 100.1.7.9 100.1.7.9 weight 20 maxconn 3000 backend aaa server 100.1.7.9 100.1.7.91 weight 20 maxconn 3000backend test.oldboy.org server 100.1.7.999 100.1.7.999 weight 20 maxconn 30 backend test.oldboy.org server 100.1.7.33 100.1.7.33 weight 20 maxconn 30 server 1.1.1.1 weight 20 maxconn 30 server 100.1.7.999 100.1.7.999 weight 20 maxconn 30 已经读取文件完成--> #捕获到next()方法在执行时已经没有可读的行之后抛出的StopIteration错误后,执行了其下方的代码
next()
代器在运行中无法后退,只能向前走
时间: 2024-10-19 11:22:45