最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

Python內(nèi)置函數(shù)locals和globals對比

 更新時間:2020年04月28日 10:09:25   作者:道法自然﹑  
這篇文章主要介紹了Python內(nèi)置函數(shù)locals和globals對比,文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友可以參考下

這兩個函數(shù)主要提供,基于字典的訪問局部和全局變量的方式。在理解這兩個函數(shù)時,首先來理解一下python中的名字空間概念。Python使用叫做名字空間的東西來記錄變量的軌跡。名字空間只是一個字典,它的鍵字就是變量名,字典的值就是那些變量的值。實際上,名字空間可以象Python的字典一樣進行訪問

每個函數(shù)都有著自已的名字空間,叫做局部名字空間,它記錄了函數(shù)的變量,包括函數(shù)的參數(shù)和局部定義的變量。每個模塊擁有它自已的名字空間,叫做全局名字空間,它記錄了模塊的變量,包括函數(shù)、類、其它導入的模塊、模塊級的變量和常量。還有就是內(nèi)置名字空間,任何模塊均可訪問它,它存放著內(nèi)置的函數(shù)和異常。

當一行代碼要使用變量 x 的值時,Python會到所有可用的名字空間去查找變量,按照如下順序:

1.局部名字空間 - 特指當前函數(shù)或類的方法。如果函數(shù)定義了一個局部變量 x,Python將使用這個變量,然后停止搜索。

2.全局名字空間 - 特指當前的模塊。如果模塊定義了一個名為 x 的變量,函數(shù)或類,Python 將使用這個變量然后停止搜索。

3.內(nèi)置名字空間 - 對每個模塊都是全局的。作為最后的嘗試,Python將假設 x 是內(nèi)置函數(shù)或變量。

如果Python在這些名字空間找不到 x,它將放棄查找并引發(fā)一個 NameError 的異常,同時傳遞There is no variable named 'x' 這樣一條信息。

#局部變量函數(shù)locals例子(locals 返回一個名字/值對的字典。):

def foo(arg, a):
    x = 1
    y = 'xxxxxx'
    for i in range(10):
        j = 1
        k = i
    print(locals())
#調(diào)用函數(shù)的打印結(jié)果
foo(1,2)
[python@master test]$ python3 f.py 
{'arg': 1, 'a': 2, 'x': 1, 'y': 'xxxxxx', 'i': 9, 'j': 1, 'k': 9}

locals 是只讀的,不可修改, 而globals可以修改,原因是:

locals()實際上沒有返回局部名字空間,它返回的是一個拷貝。所以對它進行修改,修改的是拷貝,而對實際的局部名字空間中的變量值并無影響。

globals()返回的是實際的全局名字空間,而不是一個拷貝: 與 locals 的行為完全相反。

所以對 globals 所返回的 dictionary 的任何的改動都會直接影響到全局變量的取值。

#coding:utf-8  
'''This is my first python program!'''  
z = 7 #定義全局變量 
def foo(arg):  
  x = 1  
  print(locals()) 
  print ('x=',x) 
  locals()['x'] = 2 #修改的是局部名字空間的拷貝,而實際的局部名字空間中的變量值并無影響。 
  print(locals()) 
  print("x=",x)
 
foo(3)  
print(globals()) 
print('z=',z) 
globals()["z"] = 8 #globals()返回的是實際的全局名字空間,修改變量z的值 
print(globals()) 
print("z=",z) 
[python@master test]$ python3 h.py 
{'arg': 3, 'x': 1}
x= 1
{'arg': 3, 'x': 1}
x= 1
{'__name__': '__main__', '__doc__': 'This is my first python program!', '__package__': None, '__loader__': <_frozen_importlib_external.SourceFileLoader object at 0x7fb2f23db400>, '__spec__': None, '__annotations__': {}, '__builtins__': <module 'builtins' (built-in)>, '__file__': 'h.py', '__cached__': None, 'z': 7, 'foo': <function foo at 0x7fb2f245d1e0>}
z= 7
{'__name__': '__main__', '__doc__': 'This is my first python program!', '__package__': None, '__loader__': <_frozen_importlib_external.SourceFileLoader object at 0x7fb2f23db400>, '__spec__': None, '__annotations__': {}, '__builtins__': <module 'builtins' (built-in)>, '__file__': 'h.py', '__cached__': None, 'z': 8, 'foo': <function foo at 0x7fb2f245d1e0>}
z= 8

以上就是本文的全部內(nèi)容,希望對大家的學習有所幫助,也希望大家多多支持腳本之家。

相關(guān)文章

  • Python中PDF轉(zhuǎn)Word的多種實現(xiàn)方法

    Python中PDF轉(zhuǎn)Word的多種實現(xiàn)方法

    在日常辦公和數(shù)據(jù)處理中,經(jīng)常需要將PDF文檔轉(zhuǎn)換為Word文檔,以便進行編輯、修改或格式調(diào)整,Python作為一種強大的編程語言,提供了多種庫和工具來實現(xiàn)這一功能,以下是對Python中PDF轉(zhuǎn)Word技術(shù)的詳細介紹,需要的朋友可以參考下
    2025-01-01
  • python目標檢測基于opencv實現(xiàn)目標追蹤示例

    python目標檢測基于opencv實現(xiàn)目標追蹤示例

    這篇文章主要為大家介紹了python基于opencv實現(xiàn)目標追蹤示例,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進步,早日升職加薪
    2022-05-05
  • 詳解python讀取和輸出到txt

    詳解python讀取和輸出到txt

    這篇文章主要介紹了python讀取和輸出到txt,文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友們下面隨著小編來一起學習學習吧
    2019-03-03
  • python讀取Windows注冊表的示例代碼

    python讀取Windows注冊表的示例代碼

    本文主要介紹了python讀取Windows注冊表的示例代碼,文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友們下面隨著小編來一起學習學習吧
    2022-08-08
  • pytorch-gpu安裝的經(jīng)驗與教訓

    pytorch-gpu安裝的經(jīng)驗與教訓

    本文主要介紹了pytorch-gpu安裝的經(jīng)驗與教訓,文中通過示例代碼介紹的非常詳細,具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2023-01-01
  • Python使用Networkx實現(xiàn)復雜的人物關(guān)系圖

    Python使用Networkx實現(xiàn)復雜的人物關(guān)系圖

    日常工作、生活中我們經(jīng)常會遇到一些復雜的事務關(guān)系,比如人物關(guān)系,那如何才能清楚直觀的看清楚這些任務關(guān)系呢?所以小編給大家介紹了Python如何使用Networkx實現(xiàn)復雜的人物關(guān)系圖,文中通過代碼示例講解的非常詳細,需要的朋友可以參考下
    2023-11-11
  • python?matplotlib繪圖過程中設置線條顏色實戰(zhàn)舉例

    python?matplotlib繪圖過程中設置線條顏色實戰(zhàn)舉例

    Matplotlib是一個用于數(shù)據(jù)可視化和創(chuàng)建交互式圖表的Python庫,下面這篇文章主要給大家介紹了關(guān)于python?matplotlib繪圖過程中設置線條顏色的相關(guān)資料,文中通過實例代碼介紹的非常詳細,需要的朋友可以參考下
    2023-05-05
  • Pycharm2017版本設置啟動時默認自動打開項目的方法

    Pycharm2017版本設置啟動時默認自動打開項目的方法

    今天小編就為大家分享一篇Pycharm2017版本設置啟動時默認自動打開項目的方法,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧
    2018-10-10
  • python自動化辦公操作excel的示例詳解

    python自動化辦公操作excel的示例詳解

    這篇文章主要為大家詳細介紹了如何利用python來實現(xiàn)自動化辦公操作excel文件進行各種樣式展示,并自動發(fā)送文件給"老板"的郵箱,希望對大家有所幫助
    2024-03-03
  • python指定寫入文件時的編碼格式方法

    python指定寫入文件時的編碼格式方法

    今天小編就為大家分享一篇python指定寫入文件時的編碼格式方法,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧
    2018-06-06

最新評論

万全县| 巢湖市| 大关县| 兴海县| 南溪县| 托克托县| 墨竹工卡县| 资溪县| 营口市| 百色市| 武鸣县| 洛南县| 元朗区| 莱州市| 天台县| 连云港市| 红桥区| 新和县| 镇江市| 赣州市| 盘锦市| 东阳市| 左云县| 福安市| 淮南市| 青冈县| 图木舒克市| 天门市| 建平县| 格尔木市| 太仆寺旗| 高碑店市| 江源县| 朔州市| 阳东县| 海安县| 共和县| 望江县| 张掖市| 九寨沟县| 兴国县|