我有一個類實現了__dir__
方法。但是,我不完全肯定dir
API的一些細節。在Python中實現`__dir__`:是否需要返回一個列表,並且列表是否需要排序?
A:是否真的需要__dir__
返回一個列表?我的實現使用set
來避免兩次列出屬性,我需要在返回之前將它轉換爲列表嗎?從documentation我猜它必須是一個列表:
如果對象中有一個名爲DIR()方法,這個方法會被稱爲 並且必須返回屬性的列表。
但是,在某些時候不會返回列表中斷功能嗎?
乙:是否需要結果進行排序?這裏的文檔有點含糊:
結果列表按字母順序排序。
這是否意味着,從調用__dir__
內置dir
自動排序返回的數據通過__dir__
還是意味着dir
預計排序的數據?
編輯:順便說一句,我的問題包含Python 2(2.6和2.7)和3(3.3,3.4)。