zoukankan      html  css  js  c++  java
  • 生成器调试

    调试

     1 def creat_num(all_num):
     2     print("----------1-----------")
     3     a,b = 0,1
     4     current_num = 0
     5     while current_num < all_num:
     6         print("----------2-----------")
     7         yield a  # 如果一个函数中有yield语句,那么这个就不再是函数,而是一个生成器的模板
     8         print("----------3-----------")
     9         a, b = b, a+b
    10         current_num += 1
    11         print("----------4-----------")
    12     return "ok......"
    13 
    14 # 如果在调用creat_num的时候,发现这个函数中有yield,那么此时,不是调用函数,而是创建一个生成器对象
    15 obj = creat_num(4)
    16 
    17 ret = next(obj)
    18 print(ret)
    19 
    20 ret = next(obj)
    21 print(ret)
    22 
    23 ret = next(obj)
    24 print(ret)
    25 
    26 print("------循环------")
    27 # 如果想接收return返回的值"ok......",则需要用try
    28 while True:
    29     try:
    30         ret = next(obj)
    31         print(ret)
    32     except Exception as ret:
    33         # 需要用ret.value来接收return的值,在循环之后才能打印出来
    34         print(ret.value)
    35         break

    结果:

    ----------1-----------
    ----------2-----------
    0
    ----------3-----------
    ----------4-----------
    ----------2-----------
    1
    ----------3-----------
    ----------4-----------
    ----------2-----------
    1
    ------循环------
    ----------3-----------
    ----------4-----------
    ----------2-----------
    2
    ----------3-----------
    ----------4-----------
    ok......
    

      

  • 相关阅读:
    PHP fread() 函数
    PHP fputs() 函数
    PHP fputcsv() 函数
    PHP fpassthru() 函数
    分区表基本类型
    C# const 和 readonly 有什么区别
    win2d 画出好看的图形
    win2d 画出好看的图形
    win2d 渐变颜色
    win2d 渐变颜色
  • 原文地址:https://www.cnblogs.com/yifengs/p/11393062.html
Copyright © 2011-2022 走看看