欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

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

 更新時(shí)間:2019年12月23日 11:51:58   作者:MilesMa  
這篇文章主要介紹了Python globals()和locals()對比詳解,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友可以參考下

這篇文章主要介紹了Python globals()和locals()對比詳解,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友可以參考下

Python的兩個(gè)內(nèi)置函數(shù),globals()和locals() ,它們提供了基于字典的訪問局部和全局變量的方式。

globals()是可寫的,即,可修改該字典中的鍵值,可新增和刪除鍵值對。

而locals()是不可修改字典中已存在的鍵值的,也不能pop移除鍵值對,但是可以新增鍵值對。

Demo:

a = 1  # 定義一個(gè)全局變量a

def demo():
  x = 100   # 定義一個(gè)局部變量x
  global b
  b = 2    # 定義一個(gè)全局變量b,因?yàn)樵诤瘮?shù)內(nèi),只有調(diào)用了該函數(shù)才有變量b

  print(globals())  
  print(locals())   

  globals()['a'] = 'modified a'  # 修改函數(shù)外的全局變量a,成功
  globals()['b'] = 'modified b'  # 修改函數(shù)中定義的全局變量b,成功
  globals()['c'] = 'new c'    # 新增一個(gè)全局變量c,成功
  locals()['x'] = 'modified x'  # 修改函數(shù)內(nèi)的局部變量x,結(jié)果失敗了
  locals()['y'] = 'new y'     # 新增一個(gè)函數(shù)內(nèi)的局部變量y,成功
  globals().pop('c')       # 嘗試移除全局變量c,成功
  locals().pop('x')        # 嘗試移除局部變量x,失敗了

  print(globals())
  print(locals())
def print_b():
  try:
    print(b)
  except NameError as e:
    print(e)

def print_x():
  try:
    print(x)
  except NameError as e:
    print(e)


print_b()  # b雖然是全局變量,但是是在函數(shù)demo內(nèi)定義的,在該函數(shù)調(diào)用前b是沒有的,所以not defined
demo()   # 調(diào)用demo函數(shù),此時(shí)有了全局變量b
print_x()  # x局部變量,在外訪問不到
print_b()  # 此時(shí)打印全局變量b正常,并且是修改后的值

# 打印結(jié)果   字典中省略了內(nèi)置的變量和定義的方法,方便比較
name 'b' is not defined
{'a': 1, 'b': 2}  # globals()
{'x': 100}     # locals()
{'a': 'modified a', 'b': 'modified b'}   # globals()
{'y': 'new y', 'x': 100}          # locals()
name 'x' is not defined
modified b

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

相關(guān)文章

  • flask之郵件發(fā)送的實(shí)現(xiàn)示例

    flask之郵件發(fā)送的實(shí)現(xiàn)示例

    Flask-Mail是一個(gè)處理電子郵件發(fā)送的擴(kuò)展,它提供了簡單且易于使用的API,可以方便地發(fā)送電子郵件,本文就來介紹一下flask之郵件發(fā)送的實(shí)現(xiàn)示例,感興趣的可以了解一下
    2023-12-12
  • Python中多進(jìn)程處理的Process和Pool的用法詳解

    Python中多進(jìn)程處理的Process和Pool的用法詳解

    在Python編程中,多進(jìn)程是一種強(qiáng)大的并行處理技術(shù),Python提供了兩種主要的多進(jìn)程處理方式:Process和Pool,本文將詳細(xì)介紹這兩種方式的使用,希望對大家有所幫助
    2024-02-02
  • pyqt5之將textBrowser的內(nèi)容寫入txt文檔的方法

    pyqt5之將textBrowser的內(nèi)容寫入txt文檔的方法

    今天小編就為大家分享一篇pyqt5之將textBrowser的內(nèi)容寫入txt文檔的方法,具有很好的參考價(jià)值,希望對大家有所幫助。一起跟隨小編過來看看吧
    2019-06-06
  • Python sys模塊中maxsize()方法教程示例

    Python sys模塊中maxsize()方法教程示例

    這篇文章主要為大家介紹了Python sys模塊中maxsize()方法教程示例,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪
    2023-09-09
  • 詳解KMP算法以及python如何實(shí)現(xiàn)

    詳解KMP算法以及python如何實(shí)現(xiàn)

    這篇文章主要介紹了KMP算法的相關(guān)知識以及python如何實(shí)現(xiàn),幫助大家更好的進(jìn)行數(shù)據(jù)分析,感興趣的朋友可以了解下
    2020-09-09
  • Python如何提取csv數(shù)據(jù)并篩選指定條件數(shù)據(jù)詳解

    Python如何提取csv數(shù)據(jù)并篩選指定條件數(shù)據(jù)詳解

    在學(xué)習(xí)python過程中常遇到一種情況,要讀取.csv文件的數(shù)據(jù),然后取出其中某個(gè)字段,下面這篇文章主要給大家介紹了關(guān)于Python如何提取csv數(shù)據(jù)并篩選指定條件數(shù)據(jù)的相關(guān)資料,需要的朋友可以參考下
    2022-08-08
  • Python requests.post()方法中data和json參數(shù)的使用方法

    Python requests.post()方法中data和json參數(shù)的使用方法

    這篇文章主要介紹了Python requests.post()方法中data和json參數(shù)的使用方法,文章圍繞主題展開詳細(xì)的內(nèi)容介紹,具有一定的參考價(jià)值,感興趣的小伙伴可以參考一下
    2022-08-08
  • Python中parsel兩種獲取數(shù)據(jù)方式小結(jié)

    Python中parsel兩種獲取數(shù)據(jù)方式小結(jié)

    本文主要介紹了Python中parsel兩種獲取數(shù)據(jù)方式小結(jié),文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2023-04-04
  • 對python中return與yield的區(qū)別詳解

    對python中return與yield的區(qū)別詳解

    這篇文章主要介紹了對python中return與yield的區(qū)別詳解,具有很好的參考價(jià)值,希望對大家有所幫助。一起跟隨小編過來看看吧
    2020-03-03
  • xadmin使用formfield_for_dbfield函數(shù)過濾下拉表單實(shí)例

    xadmin使用formfield_for_dbfield函數(shù)過濾下拉表單實(shí)例

    這篇文章主要介紹了xadmin使用formfield_for_dbfield函數(shù)過濾下拉表單實(shí)例,具有很好的參考價(jià)值,希望對大家有所幫助。一起跟隨小編過來看看吧
    2020-04-04

最新評論