python命名空間和範圍是什嗎?作用有哪些?

來源:互聯網
上載者:User
在這篇文章之中我們來瞭解一下python這門程式設計語言之中 命名空間和範圍。在這一篇文章之中我們將會來瞭解一下 python命名空間,以及 命名空間和範圍。瞭解關於他們的一些知識。

命名空間和範圍:

變數是擁有匹配對象的名字(標識符)。命名空間是一個包含了變數名稱們(鍵)和它們各自相應的對象們(值)的字典。

一個 Python 運算式可以訪問局部命名空間和全域命名空間裡的變數。如果一個局部變數和一個全域變數重名,則局部變數會覆蓋全域變數。

每個函數都有自己的命名空間。類的方法的範圍規則和通常函數的一樣。


Python 會智能地猜測一個變數是局部的還是全域的,它假設任何在函數內賦值的變數都是局部的。

因此,如果要給函數內的全域變數賦值,必須使用 global 語句。

#!/usr/bin/python# -*- coding: UTF-8 -*- Money = 2000            def AddMoney():   # 想改正代碼就取消以下注釋:   # global Money   Money = Money + 1 print MoneyAddMoney()print Money

global VarName 的運算式會告訴 Python, VarName 是一個全域變數,這樣 Python 就不會在局部命名空間裡尋找這個變數了。

例如,我們在全域命名空間裡定義一個變數 Money。我們再在函數內給變數 Money 賦值,然後 Python 會假定 Money 是一個局部變數。然而,我們並沒有在訪問前聲明一個局部變數 Money,結果就是會出現一個 UnboundLocalError 的錯誤。取消 global 語句的注釋就能解決這個問題。

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在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.