• 生成器调试


    调试

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

      

  • 相关阅读:
    模型性能评估
    特征提取(机器学习数据预处理)
    决策树(DecisionTree)(附源码)
    支持向量机(SVM)
    Python机器学习/LogisticRegression(逻辑回归模型)(附源码)
    机器学习大致流程
    机器学习的数据预处理
    tensorflow的断点续训
    tensorboard可视化详细
    Linux启动tomcat
  • 原文地址:https://www.cnblogs.com/yifengs/p/11393062.html
Copyright © 2020-2023  润新知