列表元素 ipython 中的制表符补全
Tab completion in ipython for list elements
以下是制表符完成对我的工作方式:
In [84]: a="string"
In [85]: b = ["str", "ing"]
字符串的制表符补全在这里工作:
In [86]: a.
a.capitalize a.decode a.expandtabs a.index a.isdigit a.istitle a.ljust a.partition a.rindex a.rsplit a.splitlines a.swapcase a.upper
a.center a.encode a.find a.isalnum a.islower a.isupper a.lower a.replace a.rjust a.rstrip a.startswith a.title a.zfill
a.count a.endswith a.format a.isalpha a.isspace a.join a.lstrip a.rfind a.rpartition a.split a.strip a.translate
列表的制表符补全在这里工作:
In [86]: b.
b.append b.count b.extend b.index b.insert b.pop b.remove b.reverse b.sort
字符串的制表符补全在这里不起作用:
In [87]: b[0].
一种可能的解决方法:
In [88]: c = b[0]
In [89]: c.
c.capitalize c.decode c.expandtabs c.index c.isdigit c.istitle c.ljust c.partition c.rindex c.rsplit c.splitlines c.swapcase c.upper
c.center c.encode c.find c.isalnum c.islower c.isupper c.lower c.replace c.rjust c.rstrip c.startswith c.title c.zfill
c.count c.endswith c.format c.isalpha c.isspace c.join c.lstrip c.rfind c.rpartition c.split c.strip c.translate
是否可以在没有提到解决方法的情况下使用完成?我在 ipdb 中遇到了类似的行为,是否也可以在那里修复此行为?我正在使用 ipython v3.1.0 和 ipdb v 0.8。谢谢
创建ipython个人资料:
ipython profile create testing
在ipython_config.py中取消注释这一行
# 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.IPCompleter.greedy = True
使用此配置文件加载 IPython:
ipython notebook --profile=testing
这为列表成员和字典键和值提供了 TAB 完成。
一个快速的替代方法是使用 dir() 方法:
dir(b[0])
#returns:
['__add__', '__class__', '__contains__', '__delattr__', '__doc__', '__eq__', '__format__', '__ge__', '__getattribute__', '__getitem__', '__getnewargs__', '__getslice__', '__gt__', '__hash__', '__init__', '__le__', '__len__', '__lt__', '__mod__', '__mul__', '__ne__', '__new__', '__reduce__', '__reduce_ex__', '__repr__', '__rmod__', '__rmul__', '__setattr__', '__sizeof__', '__str__', '__subclasshook__', '_formatter_field_name_split', '_formatter_parser', 'capitalize', 'center', 'count', 'decode', 'encode', 'endswith', 'expandtabs', 'find', 'format', 'index', 'isalnum', 'isalpha', 'isdigit', 'islower', 'isspace', 'istitle', 'isupper', 'join', 'ljust', 'lower', 'lstrip', 'partition', 'replace', 'rfind', 'rindex', 'rjust', 'rpartition', 'rsplit', 'rstrip', 'split', 'splitlines', 'startswith', 'strip', 'swapcase', 'title', 'translate', 'upper', 'zfill']
另一种方法是在 PTVS 中使用 Python 或 IPython 交互式控制台或常规编辑器,它能够对列表元素进行补全(智能感知)。
以下是制表符完成对我的工作方式:
In [84]: a="string"
In [85]: b = ["str", "ing"]
字符串的制表符补全在这里工作:
In [86]: a.
a.capitalize a.decode a.expandtabs a.index a.isdigit a.istitle a.ljust a.partition a.rindex a.rsplit a.splitlines a.swapcase a.upper
a.center a.encode a.find a.isalnum a.islower a.isupper a.lower a.replace a.rjust a.rstrip a.startswith a.title a.zfill
a.count a.endswith a.format a.isalpha a.isspace a.join a.lstrip a.rfind a.rpartition a.split a.strip a.translate
列表的制表符补全在这里工作:
In [86]: b.
b.append b.count b.extend b.index b.insert b.pop b.remove b.reverse b.sort
字符串的制表符补全在这里不起作用:
In [87]: b[0].
一种可能的解决方法:
In [88]: c = b[0]
In [89]: c.
c.capitalize c.decode c.expandtabs c.index c.isdigit c.istitle c.ljust c.partition c.rindex c.rsplit c.splitlines c.swapcase c.upper
c.center c.encode c.find c.isalnum c.islower c.isupper c.lower c.replace c.rjust c.rstrip c.startswith c.title c.zfill
c.count c.endswith c.format c.isalpha c.isspace c.join c.lstrip c.rfind c.rpartition c.split c.strip c.translate
是否可以在没有提到解决方法的情况下使用完成?我在 ipdb 中遇到了类似的行为,是否也可以在那里修复此行为?我正在使用 ipython v3.1.0 和 ipdb v 0.8。谢谢
创建ipython个人资料:
ipython profile create testing
在ipython_config.py中取消注释这一行
# 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.IPCompleter.greedy = True
使用此配置文件加载 IPython:
ipython notebook --profile=testing
这为列表成员和字典键和值提供了 TAB 完成。
一个快速的替代方法是使用 dir() 方法:
dir(b[0])
#returns:
['__add__', '__class__', '__contains__', '__delattr__', '__doc__', '__eq__', '__format__', '__ge__', '__getattribute__', '__getitem__', '__getnewargs__', '__getslice__', '__gt__', '__hash__', '__init__', '__le__', '__len__', '__lt__', '__mod__', '__mul__', '__ne__', '__new__', '__reduce__', '__reduce_ex__', '__repr__', '__rmod__', '__rmul__', '__setattr__', '__sizeof__', '__str__', '__subclasshook__', '_formatter_field_name_split', '_formatter_parser', 'capitalize', 'center', 'count', 'decode', 'encode', 'endswith', 'expandtabs', 'find', 'format', 'index', 'isalnum', 'isalpha', 'isdigit', 'islower', 'isspace', 'istitle', 'isupper', 'join', 'ljust', 'lower', 'lstrip', 'partition', 'replace', 'rfind', 'rindex', 'rjust', 'rpartition', 'rsplit', 'rstrip', 'split', 'splitlines', 'startswith', 'strip', 'swapcase', 'title', 'translate', 'upper', 'zfill']
另一种方法是在 PTVS 中使用 Python 或 IPython 交互式控制台或常规编辑器,它能够对列表元素进行补全(智能感知)。