日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 人文社科 > 生活经验 >内容正文

生活经验

Python 关键字 global、nonlocal、yield用法

發布時間:2023/11/27 生活经验 26 豆豆
生活随笔 收集整理的這篇文章主要介紹了 Python 关键字 global、nonlocal、yield用法 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

1. global

global 關鍵字用于表示某個變量是屬于全局的,而不是局部變量。先看個例子:

In [82]: x = 10In [83]: def func():...:     x += 1...:     print(x)...:     In [84]: func()
---------------------------------------------------------------------------
UnboundLocalError                         Traceback (most recent call last)
<ipython-input-84-bd1982955a12> in <module>
----> 1 func()<ipython-input-83-44beed2eef27> in func()1 def func():
----> 2     x += 13     print(x)4 UnboundLocalError: local variable 'x' referenced before assignment

報錯的原因是解釋器在運行代碼時認為 x 為局部變量,但是很顯然在 func 函數內找不到對該變量的定義,所以會報錯。使用 global 來聲明該變量為全局變量:

In [85]: def func():...:     global x...:     x += 1...:     print(x)...:     In [86]: func()
11In [87]: 

2. nonlocal

關鍵詞 nonlocal 常用于函數嵌套中,聲明變量為非局部變量

In [89]: def g():...:     i = 0...:     def f():...:         if i>1:...:             i = 0...:         i += 1...:     i += 1...:     f()...:     print(i)...:     In [90]: g()
---------------------------------------------------------------------------
UnboundLocalError                         Traceback (most recent call last)
<ipython-input-90-5fd69ddb5074> in <module>
----> 1 g()<ipython-input-89-4570c8ebdac0> in g()6         i += 17     i += 1
----> 8     f()9     print(i)10 <ipython-input-89-4570c8ebdac0> in f()2     i = 03     def f():
----> 4         if i>1:5             i = 06         i += 1UnboundLocalError: local variable 'i' referenced before assignment

使用 nonlocal 聲明變量屬于非局部變量,

In [91]: def g():...:     i = 0...:     def f():...:         nonlocal i...:         if i>1:...:             i = 0...:         i += 1...:     i += 1...:     f()...:     print(i)...:     In [92]: g()
2In [93]: 

3. yield

yield 是一種特殊的 return 。是因為執行遇到 yield 時,立即返回,這是與 return 的相似之處。不同之處在于:下次進入函數時直接到 yield 的下一個語句,而 return 后再進入函數,還是從函數體的第一行代碼開始執行。

yield 的函數是生成器,通常與 next 函數結合用。下次進入函數,意思是使用 next 函數進入到函數體內。

看個下面這個例子,調用 fun() 函數后會立即執行函數

In [2]: def fun():...:     print("enter func")...:     return "hello"...:     In [3]: ret = fun()
enter funcIn [4]: ret
Out[4]: 'hello'

下面新定義的函數帶有 yield 關鍵字,所以函數 fun() 是生成器函數。調用 fun() 返回一個迭代器對象,使用 next() 方法調用之后會返回到 yield 語句之處,再次調用 next() 之后會接著上次執行到的地方再次執行。

In [5]: def fun():...:     print("enter func")...:     yield 100...:     print("yield next sentence")...:     In [6]: ret = fun()In [7]: next(ret)
enter func
Out[7]: 100In [8]: next(ret)
yield next sentence
---------------------------------------------------------------------------
StopIteration                             Traceback (most recent call last)
<ipython-input-8-2216548e65ed> in <module>
----> 1 next(ret)StopIteration: 

總結

以上是生活随笔為你收集整理的Python 关键字 global、nonlocal、yield用法的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。

主站蜘蛛池模板: 波多野结衣高清电影 | 女女互慰吃奶互揉调教捆绑 | 青青草国产成人av片免费 | 精品久久一区二区 | 免费在线观看一区二区三区 | 韩国三级在线看 | 91精品人妻一区二区三区 | 五月天导航| 越南性xxxx精品hd | 麻豆亚洲av熟女国产一区二 | 伊人久艹 | 亚洲精品欧洲精品 | 国产毛片欧美毛片久久久 | 国产r级在线 | 麻豆精品影院 | 日韩精品在线观看一区二区三区 | av撸撸在线 | 中文写幕一区二区三区免费观成熟 | 久久久久国产精品人妻 | 日韩国产电影 | 欧美熟妇交换久久久久久分类 | 国产激情在线看 | 日本色婷婷 | 欧美性爱精品在线 | 色欲无码人妻久久精品 | 人妻无码久久一区二区三区免费 | 懂色av一区二区三区免费 | 精品美女在线 | 欧美激情一二区 | 国产精品免费视频一区二区三区 | 亚洲视频一区 | 欧美综合区 | 国产图片区 | 久久色在线视频 | 中文字幕一区二区三区人妻电影 | 护士人妻hd中文字幕 | 色屁屁www | 天天做天天操 | 成年人免费在线看 | 久久一| 亚洲国产图片 | 国产学生美女无遮拦高潮视频 | 成人靠逼视频 | 男男黄色片 | 五月天婷婷激情视频 | 亚洲高清自拍 | 亚洲永久无码精品 | 色倩网站 | 我不卡一区二区 | 亚洲一区二区观看 | 亚洲第一免费播放区 | 蜜臀一区二区三区精品免费视频 | 国产吃瓜黑料一区二区 | 日韩黄色免费观看 | 三上悠亚 电影 | 国产精品一亚洲av日韩av欧 | 成人在线激情视频 | 日韩草比 | 午夜视频黄色 | 国产精品欧美日韩 | 亚洲色图网站 | 久久久情 | 视频精品一区二区 | 黄色资源网 | 国产成人精品无码片区在线 | jizjiz中国少妇高潮水多 | 亚洲区一区二 | 在线观看日本一区二区 | 毛片网站免费观看 | 国产精品视频在线免费观看 | 亚洲精品乱码久久久久久久 | 日韩欧美日本 | 漂亮人妻被中出中文字幕 | 琪琪电影午夜理论片八戒八戒 | 日韩av手机在线播放 | 中文字幕一区久久 | 制服.丝袜.亚洲.另类.中文 | 欧美日韩一区二区在线观看视频 | www成人啪啪18软件 | va在线| 精品在线视频观看 | 亚洲精品乱码久久久久久黑人 | 91色在线播放 | 色天堂视频 | 黄色精品一区 | 中文字幕1区 | 狠狠操女人| 午夜婷婷丁香 | 久久久新 | 亚洲xxxx天美| 翔田千里在线播放 | 黑人一级女人全片 | 五月天综合在线 | 亚洲天堂av免费在线观看 | 久操视频网站 | 手机看片在线观看 | 久久久久久久久蜜桃 | 国产在线xx | 色综合天天干 |