黄色网页视频 I 影音先锋日日狠狠久久 I 秋霞午夜毛片 I 秋霞一二三区 I 国产成人片无码视频 I 国产 精品 自在自线 I av免费观看网站 I 日本精品久久久久中文字幕5 I 91看视频 I 看全色黄大色黄女片18 I 精品不卡一区 I 亚洲最新精品 I 欧美 激情 在线 I 人妻少妇精品久久 I 国产99视频精品免费专区 I 欧美影院 I 欧美精品在欧美一区二区少妇 I av大片网站 I 国产精品黄色片 I 888久久 I 狠狠干最新 I 看看黄色一级片 I 黄色精品久久 I 三级av在线 I 69色综合 I 国产日韩欧美91 I 亚洲精品偷拍 I 激情小说亚洲图片 I 久久国产视频精品 I 国产综合精品一区二区三区 I 色婷婷国产 I 最新成人av在线 I 国产私拍精品 I 日韩成人影音 I 日日夜夜天天综合

Python函數編程——名稱空間

系統 2056 0

Python函數編程——名稱空間

名稱空間又名name space,顧名思義就是存放名字的地方,存什么名字呢?舉例說明,若變量x=1,1存放于內存中,那名字x存放在哪里呢? 稱空間正是存放名字x與1綁定關系的地方。

Python里面有很多名字空間,每個地方都有自己的名字空間,互不打擾,不同空間中的兩個相同名字的變量之間沒有任何關系。

名稱空間有4種: LEGB

  • locals :函數內部的名字空間,一般包括函數的局部變量以及形式參數。
  • enclosing function :在嵌套函數中外部函數的名字空間,若fun2嵌套在fun1里,對fun2來說,fun1的名字空間就enclosing。
  • globals :當前的模塊空間,模塊就是一些py文件。也就是說,globals()類似全局變量。
  • builtins :內置模塊空間,也就是內置變量或者內置函數的名字空間。

不同變量的作用域不同就是由這個變量所在的名稱空間所決定的。

作用域即范圍

  • 全局范圍:全局存活,全局有效。
  • 局部范圍:臨時存活,局部有效。

查看作用域方法: globals() locals()

作用域查找順序

當程序引用某個變量的名字時,就會從當前名字空間開始搜索。搜索順序規則便是: LEGB 。即 locals -> enclosing function -> globals ->builtins 。一層一層的查找,找到了之后,便停止搜索,如果最后沒有找到,則拋出NameError的異常。

          
            level = 'L0'
n = 22
def func():
    level = 'L1'
    n = 33
    print(locals())
    def outer():
        n = 44
        level = 'L2'
        print("outer:",locals(),n)
        def inner():
            level = 'L3'
            print("inner:",locals(),n) #此外打印的n是多少?
        inner()
    outer()
func()
          
        

輸出

          
            {'n': 33, 'level': 'L1'}
outer: {'level': 'L2', 'n': 44} 44
inner: {'level': 'L3', 'n': 44} 44
          
        

更多文章、技術交流、商務合作、聯系博主

微信掃碼或搜索:z360901061

微信掃一掃加我為好友

QQ號聯系: 360901061

您的支持是博主寫作最大的動力,如果您喜歡我的文章,感覺我的文章對您有幫助,請用微信掃描下面二維碼支持博主2元、5元、10元、20元等您想捐的金額吧,狠狠點擊下面給點支持吧,站長非常感激您!手機微信長按不能支付解決辦法:請將微信支付二維碼保存到相冊,切換到微信,然后點擊微信右上角掃一掃功能,選擇支付二維碼完成支付。

【本文對您有幫助就好】

您的支持是博主寫作最大的動力,如果您喜歡我的文章,感覺我的文章對您有幫助,請用微信掃描上面二維碼支持博主2元、5元、10元、自定義金額等您想捐的金額吧,站長會非常 感謝您的哦!!!

發表我的評論
最新評論 總共0條評論