當一個對象有數百種方法時,標籤填充很難使用。通常,有趣的方法是被檢查對象的類而不是其基類定義或覆蓋的方法。如何讓IPython按類組織選項卡完成可能性?
我該如何讓IPython將其製表符完成的可能性分組,以便在被檢查對象的類中定義的方法和屬性首先出現,然後是基類中的那些?
它看起來像無證inspect.classify_class_attrs(cls)
函數以及inspect.getmro(cls)
給我我需要的大部分信息(這些是最初編寫來實現python的help(object)
功能)。
默認情況下,readline按字母順序顯示完成,但用於顯示完成的函數可以用ctypes或Python 2.6及更高版本包含的readline模塊替換。我已經覆蓋了readline的完成顯示,它效果很好。
現在我需要的是一種方法來合併每個類信息(從上面的inspect.*
)與每個實例的信息,通過方法解析順序排序結果,漂亮的打印和分頁。
要獲得額外的功勞,最好將所選的自動完成存儲起來,並在下一次嘗試對同一對象進行自動完成時首先顯示最受歡迎的選項。