# file one.py
deffunc
(): print("func() in one.py")
print("top-level in one.py")
if __name__ == "__main__":
print("one.py is being run directly")
else:
print("one.py is being imported into another module")
# file two.py
import one
print("top-level in two.py")
one.func()
if __name__ == "__main__":
print("two.py is being run directly")
else:
print("two.py is being imported into another module")
如果你執行one.py檔案
python one.py
會輸出
top-level in
one.py
one.py is being run directly
如果你執行two.py檔案
python two.py
會輸出
top-level in
one.py
one.py is being imported into another module
top-level in
two.py
func() in
one.py
two.py is being run directly
thus, when module one gets loaded, itsnameequals 「one」 instead ofmain.
通過name的值,我們可以判斷出該模組是作為指令碼正在執行還是被其他模組匯入,而根據這個判斷,我們就可以選擇性地執行**。將只有模組作為指令碼執行時的**放入到
if __name__ == '__main__':
更進一步的,最後乙個鏈結介紹了main.py 檔案的注意事項,這裡暫時先不深入了解
同樣來自對知乎的問題的學習
作為使用者,應該按照所使用庫的習慣來決定用那種方式處理錯誤,如果庫使用throw則try,如果庫使用return則if。而自己的模組,根據開發時間和模組的重要性的不同而選擇不同模式。如,開發時間短,指令碼為臨時性的則try-except;如**比較關鍵要求穩定,如出錯c需要詳細的錯誤提示則if-else。
try:
open ('abc.txt','r')
except ioerror,msg:
print(msg)
如果沒有給出錯誤或者異常的名稱,則會處理所有的錯誤和異常
try:
open ('abc.txt','r')
except ioerror,msg:
print(msg)
except:
print ('other error')
在 try 中 raise乙個異常,就立刻轉入 except 中執行,在except 中遇到 return 時,就強制轉到 finally 中執行, 在 finally 中遇到 return 時就返回。
def
test1
():try:
print('to do stuff')
raise exception('hehe')
print('to return in try')
return
'try'
except exception:
print('process except')
print('to return in except')
return
'except'
finally:
print('to return in finally')
return
'finally'
test1return = test1()
print('test1return : ' + test1return)
結果如下
to
do stuff
process except
toreturn
in except
toreturn
infinally
'test1return : finally
記錄兩個python的小問題
使用python也前前後後也乙個月的樣子,記錄兩個一直沒注意的問題。1 元組的使用 拼接字串 直接看下面的 python view plain copy kel some strings type kel tuple print kel some strings 一直以為兩個字串加一起是乙個字串,從...
兩個小問題
最近實驗室的工作上碰到的兩個小問題,記錄一下。1.yuv顏色空間的gmm 之前用過很多次的在rgb上的混合高斯模型,最近需要對乙個yuv序列使用gmm方法建背景。因為有現成的 所以第乙個出現在腦海中的想法就是用公式把yuv轉成rgb之後,完了再轉回yuv。後來再回頭一想,完全不必要如此,因為gmm完...
MySQL的兩個小問題
近期打算離職,所以開始投簡歷重新找 的工作,然後 資本打 過來 面試,提了兩個問題,全沒答上來,其實是太久沒用mysql了啊,還有我工作就是不斷去試出來的,反正整理一下啦。有兩張表 如上圖a表和b表這樣子,一共有15個同學,想得到學號為1 15的學生的平均分,如果該項沒有成績就為0,怎麼操作?面試卡...