如何检查 python cmd.Cmd 程序中是否可以完成

How to check if completion is available in a python cmd.Cmd program

如果 readline 支持可用,标准 cmd 模块提供了很好的工具来构建默认情况下自动完成的 CLI。

但是我想知道如何从程序内部知道此支持是否有效以及是否启用了完成。

我检查了 cmd 模块的来源,它在 try-except 块中需要它的地方导入了 readline 以捕获 ImportError。那么查找是否启用完成的最佳方法就是使用以下内容:

try:
   import readline
   completion_available = True
except ImportError:
   completion_available = False