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......
    

      

  • 相关阅读:
    遗传算法求解TSP问题
    蚁群算法求解TSP问题
    遗传算法之函数优化
    k-means和iosdata聚类算法在生活案例中的运用
    MATLAB实现模糊控制
    感知机算法及BP神经网络
    K-means聚类算法
    链表_leetcode92
    链表_leetcode86
    链表_leetcode83
  • 原文地址:https://www.cnblogs.com/yifengs/p/11393062.html
Copyright © 2011-2022 走看看