Python 2和3的區別--生成器return

日期:20170926


本目錄記錄的是,我用Python2不能正確運行,而Python3可以的。或者用Python2能正確運行,而Python3不可以的。

如果只是簡單學Python編程的,可以直接學Python3,因爲Python2貌似不更新了。
如果想深入學習Python或者以Python的工作的,那有很大機率會遇到Python 2的代碼,所以有必要知道Python 2和3的不同點。

當然,如果要用Python編程,最好選擇Python3,因爲這是趨勢。如果你編Python2,卻在另一臺機的Python環境出錯(現在大多是裝Python3),那就尷尬了,對不?


Python3生成器支持return

代碼,

#!/usr/bin/python3

def MyGenerator():
        yield 1
        yield 2
        yield 3
        return "done"

Num=MyGenerator()
print(next(Num))
print(next(Num))
print(next(Num))

運行,

[penx@ali01 python2]$ ./example_generator.py 
1
2
3
[penx@ali01 python2]$ 

結果,
正常運行。


Python2不可以

代碼,
代碼和上面的一樣,只是開頭用了Python2

運行,

[penx@ali01 python2]$ ./example_generator.py 
  File "./example_generator.py", line 7
    return "done"
SyntaxError: 'return' with argument inside generator
[penx@ali01 python2]$ 

結果,
報錯,

SyntaxError: ‘return’ with argument inside generator

說是在生成器不能有return


小結

Python3定義生成器時可用return。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章