[CS61A-Fall-2020]學習記錄二 Lecture1,2,3中有意思的點
前言
首先,本文不是總結歸納,只是記錄一些有趣的知識點罷了
正文
doctest
好東西啊,此前的學習從未看到過,可以在函數的注釋中通過特定格式便可書寫文檔測試,比如
def divide_exact(n, d):
'''
Return the quotient and remainder of dividing N by D.
>>>q, r = divide_exact(2013, 10)
>>>q
201
>>> r
3
'''
return floordiv(n, d), mod(n, d)
假設該 python 文件命名為 file.py,此時在本文件夾打開 bash,并輸入命令行
python3 file.py 就能通過 doctest 來檢查,如果沒有其它輸出,說明測試正常
可通過 -v 來顯示運行過程,
當寫成python3 -m doctest -v file.py時,該命令會詳細運行測試用例
此外,doctest只會在命令行這種測試環境下才會運行,不用擔心會在正式使用時誤觸發
None
與C不同,python的函數都有返回,只是一部分返回為None,舉個栗子
print(3)
會輸出3,那么
print(print(1), print(2))
會輸出什么呢?
答案是……
1
2
None None
為什么呢?
因為python在調用函數時會先將參數計算盡,所以才會先輸出1,再輸出2
而后面出現的 None None 則是 print 函數返回的是 None
老師將函數大致分為兩類
pure functions 和 non-pure fuctions,前者單純返回函數值,后者除函數值有其他的操作

浙公網安備 33010602011771號