python的經驗主義學習之路(一)
阿新 • • 發佈:2019-01-06
2017_7_19
學習總結
1:用python 的命令列互動系統中執行python,我可以在任意dos中任意目錄下輸入 python、啟動python的直譯器,若不匯入任何的模組則敲入任意的python程式碼,python直譯器就能一行一行的執行我的程式碼。而這個啟動python的目錄就是python直譯器的當前工作目錄(不知道對不對,目前對比vs得出的結論),而當前工作目錄就是預設的讀取目錄,所以當我們需要import一個模組時,我們必須將python的啟動目錄(當前工作目錄)設定為模組的目錄,這樣才能正確的讀取(找到模組,否則會提示找不到)
2:python 是解釋性的語言----從上到下一句一句的翻譯成機器程式碼並執行,所以import 和c++中的#include有本質的區別嗎,#include是單純的貼在相應的位置(不一定先執行,定從main 開始執行),而import是把模組module(一個.py)中的內容直接從上到下先執行一遍。如下程式碼:
absTest.py
def abd(x):
if x>=0:
return x
else:
return -x
a = 5
print('這是第一個test的a=5')
b = 6
print('這是第一TEst的b=6')
def abd(x):
print('這是第三個abd')
def abd(x,y):
print('這是第三個abd,函式的簽名不同')
可以看到最終的效果,打印出了非函式定義的內容。
執行
我們可以看到若直接呼叫abd函式,則會出現錯誤,abd沒有被定義,在import一個模組(包目前沒有測試 ),不可直接呼叫,必須寫模組名+.。
函式重名問題,好像並沒有C++中的根據函式簽名過載的問題,目前經驗主義理解如下:
函式名是一個變數,和c++常量不同,這個變數可以指向了記憶體中不同的函式體。所以只有最後一個定義的函式有效。
3:模組中的 變數,和函式需要 用嗎,模組名+.訪問,同名的函式和變數並不衝突。需加上模組名區別。
import時,只執行第一次的import。