1'''2pyhon 模組
3
python 模組(module),是乙個 python 檔案,以 .py 結尾,包含了 python 物件定義和python語句。
4模組讓你能夠有邏輯地組織你的 python **段。
5把相關的**分配到乙個模組裡能讓你的**更好用,更易懂。
6模組能定義函式,類和變數,模組裡也能包含可執行的**。
7'''8#
匯入模組
9import
test
1011
#呼叫模組
12test.testpythonmk()
1314
#乙個模組只會被匯入一次,不管你執行了多少次import。這樣可以防止匯入模組被一遍又一遍地執
1516
#from…import 語句17#
python 的 from 語句讓你從模組中匯入乙個指定的部分到當前命名空間中。語法如下:18#
from modname import name1[, name2[, ... namen]]
1920
#from…import* 語句 from math import *21#
把乙個模組的所有內容全都匯入到當前的命名空間也是可行的,只需使用如下宣告:
2223
#例項測試: 只呼叫模組中的乙個方法
24from test import
testa,testb
25testa()
2627
testb()
2829
#例項測試: 呼叫模組中的所有方法
30from test import *
31testc()
3233
34"""
35搜尋路徑
36
當你匯入乙個模組,python 解析器對模組位置的搜尋順序是:
3738
1、當前目錄
392、如果不在當前目錄,python 則搜尋在 shell 變數 pythonpath 下的每個目錄。
403、如果都找不到,python會察看預設路徑。unix下,預設路徑一般為/usr/local/lib/python/。
41模組搜尋路徑儲存在 system 模組的 sys.path 變數中。變數裡包含當前目錄,pythonpath和由安裝過程決定的預設目錄
42"""
4344
#set pythonpath=c:\python27\lib;
45"""
46pythonpath 變數
47作為環境變數,pythonpath 由裝在乙個列表裡的許多目錄組成。pythonpath 的語法和 shell 變數 path 的一樣。
4849
在 windows 系統,典型的 pythonpath 如下:
50"""
5152
"""53命名空間和作用域
54
變數是擁有匹配物件的名字(識別符號)。命名空間是乙個包含了變數名稱們(鍵)和它們各自相應的物件們(值)的字典。
5556
乙個 python 表示式可以訪問區域性命名空間和全域性命名空間裡的變數。如果乙個區域性變數和乙個全域性變數重名,則區域性變數會覆蓋全域性變數。
5758
每個函式都有自己的命名空間。類的方法的作用域規則和通常函式的一樣。
5960
python 會智慧型地猜測乙個變數是區域性的還是全域性的,它假設任何在函式內賦值的變數都是區域性的。
6162
因此,如果要給函式內的全域性變數賦值,必須使用 global 語句。
6364
global varname 的表示式會告訴 python, varname 是乙個全域性變數,這樣 python 就不會在區域性命名空間裡尋找這個變數了。
6566
例如,我們在全域性命名空間裡定義乙個變數 money。我們再在函式內給變數 money 賦值,然後 python 會假定 money 是乙個區域性變數。然而,我們並沒有在訪問前宣告乙個區域性變數 money,結果就是會出現乙個 unboundlocalerror 的錯誤。取消 global 語句前的注釋符就能解決這個問題。
67"""
6869 money = 2000
7071
defaddmoney():
72global
money
73 money = money + 1
7475
addmoney()
76print
(money)
7778
79"""
8dir()函式
81
dir() 函式乙個排好序的字串列表,內容是乙個模組裡定義過的名字。
8283
84"""
85print
(dir(test))
8687
88"""
89globals() 和 locals() 函式
90根據呼叫地方的不同,globals() 和 locals() 函式可被用來返回全域性和區域性命名空間裡的名字。
9192
如果在函式內部呼叫 locals(),返回的是所有能在該函式裡訪問的命名。
9394
如果在函式內部呼叫 globals(),返回的是所有在該函式裡能訪問的全域性名字。
9596
兩個函式的返回型別都是字典。所以名字們能用 keys() 函式摘取。
97"""
9899
100101
"""102
reload() 函式103
當乙個模組被匯入到乙個指令碼,模組頂層部分的**只會被執行一次。
104105
因此,如果你想重新執行模組裡頂層部分的**,可以用 reload() 函式。該函式會重新匯入之前匯入過的模組。語法如下:
106107
reload(module_name)
108在這裡,module_name要直接放模組的名字,而不是乙個字串形式。比如想過載 hello 模組,如下:
109110
reload(hello)
111"""
112113
"""114python中的包
115
包是乙個分層次的檔案目錄結構,它定義了乙個由模組及子包,和子包下的子包等組成的 python 的應用環境。
116117
簡單來說,包就是資料夾,但該資料夾下必須存在 __init__.py 檔案, 該檔案的內容可以為空。__init__.py 用於標識當前資料夾是乙個包。
118119
考慮乙個在 package_runoob 目錄下的 runoob1.py、runoob2.py、__init__.py 檔案,test.py 為測試呼叫包的**,目錄結構如下:
120121
"""122
#匯入python 包
123from testpackage import
testa
124from testpackage import
testb
125126
testa.testa1()
127128 testb.testb1()
目錄 Python模組學習系列
1 python模組學習 paramiko 主機管理 2 python模組學習 fileinput 讀取檔案 3 python模組學習 configparser 配置檔案 4 python模組學習 argparse 命令列引數 5 python模組學習 logging 日誌 6 python模組學習...
Python學習 Python函式與模組學習
函式 實現具有特定功能的 自定義函式 內建函式 函式特點 隱藏實現功能的細節 重用 提高可讀性,便於除錯 函式的定義 def 函式名 形式引數1,形式引數2,形參n 要執行的 函式體 return 輸出的資料 返回值 形式引數 函式約定的格式資料要求 用於約束。實際引數 實際呼叫傳入的資料。用於傳值...
python系列之numpy模組學習
未完待續 1.nupmy是什麼?numpy是python中用於科學計算的乙個庫。import numpy as np 匯入numpy並命名為np print np.version.version 輸出numpy的版本 print np.version 也可以這樣輸出版本 結果如圖 2.建立陣列 ar...