python命名空間和範圍

來源:互聯網
上載者:User

標籤:oba   變數   運行時   命名   style   修改   需要   沒有   影響   

一、命名空間

定義:名稱到對象的映射。命名空間是一個字典的實現,鍵為變數名,值是變數對應的值。各個命名空間是獨立沒有關係的,一個命名空間中不能有重名,但是不同的命名空間可以重名而沒有任何影響。

分類:

1、全域命名空間:

在代碼一運行時就建立的命名空間。

2、局部命名空間:

指在程式運行過程中開闢的臨時空間,比如函數,類

3、內建命名空間:

在程式運行載入代碼前,提前開闢用於儲存常用內建方法的空間,比如input,print,str,list,都屬於內建命名空間的變數

 

加載順序:載入順序:內建命名空間(程式運行前載入)->全域命名空間(程式運行中:從上到下載入)->局部命名空間(程式運行中:調用時才載入)取值順序:  在局部調用:局部命名空間->全域命名空間->內建命名空間  在全域調用:全域命名空間->內建命名空間

  

 二、範圍

全域範圍:包含內建名稱空間、全域名稱空間,在整個檔案的任意位置都能被引用、全域有效

局部範圍:局部名稱空間,只能在局部範圍生效

global關鍵字,nonlocal關鍵字。

global:

  1,聲明一個全域變數。

  2,在局部範圍想要對全域範圍的全域變數進行修改時,需要用到 global(限於字串,數字)。

nonlocal:

  1,不能修改全域變數。

  2,在局部範圍中,對父級範圍(或者更外層範圍非全域範圍)的變數進行引用和修改,並且引用的哪層,從那層及以下此變數全部發生改變。

 

python命名空間和範圍

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.