Ipython 对象列表或字典的自动完成
Ipython autocompletion for list or dict of objects
我想在 IPython(Jupyter qtconsole 或控制台)中为以下情况自动完成:
我创建了一个class
class MyClass(object):
def __init__(self, a, b):
self.a = a
self.b = b
并将这个 class 的几个对象放入列表或字典中
my_list = []
my_list.append(MyClass(2,3))
my_list.append(MyClass(9,2))
my_list.append(MyClass(8,4))
现在如果我这样做
my_list[0].TAB
自动完成功能不起作用。
我想查看我的 class 属性和方法的列表。我是不是遗漏了什么,或者这只是 IPython 不支持?
感谢您的帮助...
您可以在 Jupyter Notebook 的单元格中执行:
%config IPCompleter.greedy=True
这给出(在 ipython/jupyter 控制台中,但在笔记本中相同)
In [10]: my_list[0].<TAB>
my_list[0].a my_list[0].b
要永久拥有它,只需编辑您的文件 ipython_config.py
使其看起来像这样(注释行已经存在且未修改,大约在第 506-514 行):
#------------------------------------------------------------------------------
# Completer configuration
#------------------------------------------------------------------------------
# Activate greedy completion
#
# This will enable completion on elements of lists, results of function calls,
# etc., but can be unsafe because the code is actually evaluated on TAB.
c.Completer.greedy = True # <-- uncomment this line and set it to True
如果您在 ~/.ipython/profile_default/
中没有 ipython_config.py
,您可以创建一个:
ipython profile create
我想在 IPython(Jupyter qtconsole 或控制台)中为以下情况自动完成:
我创建了一个class
class MyClass(object):
def __init__(self, a, b):
self.a = a
self.b = b
并将这个 class 的几个对象放入列表或字典中
my_list = []
my_list.append(MyClass(2,3))
my_list.append(MyClass(9,2))
my_list.append(MyClass(8,4))
现在如果我这样做
my_list[0].TAB
自动完成功能不起作用。
我想查看我的 class 属性和方法的列表。我是不是遗漏了什么,或者这只是 IPython 不支持?
感谢您的帮助...
您可以在 Jupyter Notebook 的单元格中执行:
%config IPCompleter.greedy=True
这给出(在 ipython/jupyter 控制台中,但在笔记本中相同)
In [10]: my_list[0].<TAB>
my_list[0].a my_list[0].b
要永久拥有它,只需编辑您的文件 ipython_config.py
使其看起来像这样(注释行已经存在且未修改,大约在第 506-514 行):
#------------------------------------------------------------------------------
# Completer configuration
#------------------------------------------------------------------------------
# Activate greedy completion
#
# This will enable completion on elements of lists, results of function calls,
# etc., but can be unsafe because the code is actually evaluated on TAB.
c.Completer.greedy = True # <-- uncomment this line and set it to True
如果您在 ~/.ipython/profile_default/
中没有 ipython_config.py
,您可以创建一个:
ipython profile create