首頁 >后端開發 >Python教程 > 正文

python的模塊數據是哪里來的

原創2019-06-17 09:23:090484
第十期線上培訓班
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中文網其它相關文章!

php中文網最新課程二維碼
  • 相關標簽:Python
  • 本文原創發布php中文網,轉載請注明出處,感謝您的尊重!
  • 相關文章

    相關視頻


    網友評論

    文明上網理性發言,請遵守 新聞評論服務協議

    我要評論
  • 專題推薦

    作者信息
    推薦視頻教程
  • Python教程之Tkinter視頻教程Python教程之Tkinter視頻教程
  • python開發單詞查詢系統python開發單詞查詢系統
  • python編程入門系列圖文教程python編程入門系列圖文教程
  • 視頻教程分類
    第十期線上培訓班 足彩吧合买平台