python兩個小問題的記錄

2021-08-14 06:57:17 字數 2662 閱讀 4348

主要源自知乎的問題、知乎的答案以及引申查詢到的部落格,記錄下來便於以後回顧總結

# 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,怎麼操作?面試卡...