首頁 >後端開發 >Python教學 >python的模組資料是哪裡來的

python的模組資料是哪裡來的

anonymity
anonymity原創
2019-06-17 09:23:092092瀏覽

python的模組資料是哪裡來的,首先需要知道的是Python是怎麼找到這個包模組的,然後再深入了解命名空間的概念,就能知道python的模組資料是哪裡來的了。

python的模組資料是哪裡來的

搜尋路徑

當你匯入模組,Python 解析器對模組位置的搜尋順序是:

1、目前目錄

2、如果不在目前目錄,Python 則搜尋在shell 變數PYTHONPATH 下的每個目錄。

3、如果都找不到,Python會察看預設路徑。 UNIX下,預設路徑一般為/usr/local/lib/python/。

模組搜尋路徑儲存在 system 模組的 sys.path 變數中。變數裡包含目前目錄,PYTHONPATH和由安裝過程決定的預設目錄。

命名空間和作用域

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

一個 Python 表達式可以存取局部命名空間和全域命名空間裡的變數。如果一個局部變數和一個全域變數重名,則局部變數會覆寫全域變數。

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

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

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

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

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

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

以上是python的模組資料是哪裡來的的詳細內容。更多資訊請關注PHP中文網其他相關文章!

陳述:
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn