星期一, 10月 31, 2016

python3 限定使用 keyword 關鍵字的方式作為參數

這篇是從 《Effective Python》: tips 21 學習到的觀念

在我們實作 function 的時候,定義 function specification。為了讓 function 的行為能夠更明確化,我們傾向在傳遞某些參數的時候 "強制" "限定" 使用 keyword方式的寫法來傳遞參數也就是指名 parameter=value 的方式。

這在 Python 裡面稱為 "Keyword-only Arguments"
相較於 Python2, Python3 有特殊的語法來支持這樣的使用方式:

在 parameter list 可以看到 "*" 它是用來標記 positional arguments 的結尾。在這之後的參數都一定要使用 keyword-only 的寫法。

如果這時候,我們使用 3個以上的 positional arguments 的話,會引發 "TypeError"


那 Python2 呢?使用 **kwargs 的方式,並且要手動引發 TypeError 。

沒有留言:

張貼留言

[Paper note] Multiagent Bidirectionally-Coordinated Nets for Learning to Play StarCraft Combat Games

Paper:  https://arxiv.org/abs/1703.10069 這篇論文是由 Alibaba & UCL共同發表的,並投稿到 NIPS 2017。他們發表了一個 Multi-agent framework 讓 agents 利用共同的 framew...