2015-05-26 73 views

回答

13

...爲Python的Elipsis object字面語法:

>>> ... 
Ellipsis 

它主要用於通過NumPy的;請參閱What does the Python Ellipsis object do?

您發現的代碼將其用作哨點;一種檢測clss關鍵字參數沒有指定其他值的方法。通常情況下,您會使用None作爲此值,但這會使None本身不被用作值。

就我個人而言,我不喜歡使用Ellipsis作爲哨兵;我總是會創建一個專用的前哨,而不是:

_sentinel = object() 

def elem_name_ensure_class(elem, clss=_sentinel): 
    elem_name, elem_class = elem_split_name_class(elem) 
    if clss is not _sentinel: 
     assert(elem_class == clss) 
    return elem_name.decode('utf-8') 

使用...符號預訂(object[...])在Python 2語法錯誤之外,所以使用的伎倆限制代碼到Python 3