Python3基礎 yield next 獲取生成器生出的值

  •        Python : 3.7.3
  •          OS : Ubuntu 18.04.2 LTS
  •         IDE : pycharm-community-2019.1.3
  •       Conda : 4.7.5
  •    typesetting : Markdown

code

coder@ubuntu:~$ source activate py37
(py37) coder@ubuntu:~$ ipython
Python 3.7.3 (default, Mar 27 2019, 22:11:17) 
Type 'copyright', 'credits' or 'license' for more information
IPython 7.5.0 -- An enhanced Interactive Python. Type '?' for help.

In [1]: a = (2 * x + 1 for x in (1, 2, 3, 4))  # 生成器。用一個生成一個,省內存空間                 

In [2]: next(a)                                                                                     
Out[2]: 3

In [3]: next(a)                                                                                     
Out[3]: 5

In [4]: next(a)                                                                                     
Out[4]: 7

In [5]: next(a)                                                                                     
Out[5]: 9

In [6]: next(a)                                                                                     
---------------------------------------------------------------------------
StopIteration                             Traceback (most recent call last)
<ipython-input-6-15841f3f11d4> in <module>
----> 1 next(a)

StopIteration: 

In [7]: # 超過迭代範圍,拋出異常                                                                     

In [8]: exit                                                                                        
(py37) coder@ubuntu:~$ conda deactivate
coder@ubuntu:~$

source_code

class StopIteration(Exception):
    """ Signal the end from iterator.__next__(). """
    def __init__(self, *args, **kwargs): # real signature unknown
        pass

    value = property(lambda self: object(), lambda self, v: None, lambda self: None)  # default
    """generator return value"""

resource

  • [文檔 - English] docs.python.org/3
  • [文檔 - 中文] docs.python.org/zh-cn/3
  • [規範] www.python.org/dev/peps/pep-0008
  • [規範] zh-google-styleguide.readthedocs.io/en/latest/google-python-styleguide/python_language_rules
  • [源碼] www.python.org/downloads/source
  • [ PEP ] www.python.org/dev/peps
  • [平臺] www.cnblogs.com
  • [平臺] gitee.com


Python具備開源、跨平臺、解釋型、交互式等特性,值得學習。
Python的設計哲學:優雅,明確,簡單。提倡用一種方法,最好是隻有一種方法來作一件事。
代碼的書寫要遵照規範,這樣有助於溝通和理解。
每種語言都有獨特的思想,初學者須要轉變思惟、踏實踐行、堅持積累。python

相關文章
相關標籤/搜索