Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/sql-server-2008/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python 绝地武士能自动完成自定义库吗?_Python_Autocomplete_Dataset_Jedi - Fatal编程技术网

Python 绝地武士能自动完成自定义库吗?

Python 绝地武士能自动完成自定义库吗?,python,autocomplete,dataset,jedi,Python,Autocomplete,Dataset,Jedi,我是Python的新用户,所以我不知道自己在做什么。请记住:) 我正在使用Anaconda和Sublime Text 3作为我的Python IDE。 据我所知,Anaconda使用jedi查找导入包的自动完成 但是,在尝试dataset的示例脚本时: 在点之后,我不会自动完成插入(或任何其他函数)。 当我在python控制台中尝试它时,效果很好 我试图调试它,并将问题缩小到绝地或数据集。 在Python控制台上: >>> from jedi import Script >

我是Python的新用户,所以我不知道自己在做什么。请记住:)

我正在使用Anaconda和Sublime Text 3作为我的Python IDE。 据我所知,Anaconda使用jedi查找导入包的自动完成

但是,在尝试dataset的示例脚本时:

在点之后,我不会自动完成插入(或任何其他函数)。 当我在python控制台中尝试它时,效果很好

我试图调试它,并将问题缩小到绝地或数据集。 在Python控制台上:

>>> from jedi import Script
>>> print(Script('import dataset;dataset.table.').completions())
返回:

[<Completion: connect>, <Completion: Database>, <Completion: database>, <Completion: os>, <Completion: row_type>, <Completion: Table>, <Completion: table>, <Completion: types>, <Completion: util>, <Completion: warnings>, <Completion: __all__>, <Completion: __doc__>, <Completion: __file__>, <Completion: __name__>, <Completion: __package__>]
返回:

[<Completion: connect>, <Completion: Database>, <Completion: database>, <Completion: os>, <Completion: row_type>, <Completion: Table>, <Completion: table>, <Completion: types>, <Completion: util>, <Completion: warnings>, <Completion: __all__>, <Completion: __doc__>, <Completion: __file__>, <Completion: __name__>, <Completion: __package__>]
[,,,,,,,,]
例如,您可以看到,
Completion:connect


我遗漏了什么吗?我是不是做错了什么愚蠢的事?很抱歉,这是一个非常琐碎的问题。

这个示例的问题是静态类型推断比您在终端中所做的要困难得多。绝地武士可以同时适用于这两种情况,但显然有一种更容易获得运行时信息的方法

如果您查看
数据集
的代码,就可以清楚地看到,理解返回的是什么类型并不简单。有很多电话很难接听。这里最大的问题是缓存。字典用于保存表格。绝地武士还没有按照字典上的作业去做。这意味着绝地虽然理解
{'a':1}['a']
,但绝地却不理解
x={};x['a']=1;x['a']
。绝地认为口述是空的,不寻找口述的变化。我希望有朝一日能实现这一点,但这并不容易,因为你总是要考虑到性能。p> 我在绝地追踪器中为这种行为制造了一个问题:。但是我不确定这会解决这个问题。真正解决这种情况的是类型注释(或存根)。我很确定PyCharm也有同样的问题

备注:关于
脚本('import dataset;dataset.table').completions()的快速说明,其中缺少
insert
。这是有道理的
insert
确实不存在,它在
dataset.table.table.insert中:

>>> import jedi
>>> jedi.Script('import dataset;dataset.table.Table.insert').goto_definitions()
[<Definition full_name='dataset.table.Table.insert', description='def insert'>]
导入绝地武士 >>>Script('import dataset;dataset.table.table.insert')。goto_定义() []
这个例子的问题是,静态类型推断比在终端中进行的要困难得多。绝地武士可以同时适用于这两种情况,但显然有一种更容易获得运行时信息的方法

如果您查看
数据集
的代码,就可以清楚地看到,理解返回的是什么类型并不简单。有很多电话很难接听。这里最大的问题是缓存。字典用于保存表格。绝地武士还没有按照字典上的作业去做。这意味着绝地虽然理解
{'a':1}['a']
,但绝地却不理解
x={};x['a']=1;x['a']
。绝地认为口述是空的,不寻找口述的变化。我希望有朝一日能实现这一点,但这并不容易,因为你总是要考虑到性能。p> 我在绝地追踪器中为这种行为制造了一个问题:。但是我不确定这会解决这个问题。真正解决这种情况的是类型注释(或存根)。我很确定PyCharm也有同样的问题

备注:关于
脚本('import dataset;dataset.table').completions()的快速说明,其中缺少
insert
。这是有道理的
insert
确实不存在,它在
dataset.table.table.insert中:

>>> import jedi
>>> jedi.Script('import dataset;dataset.table.Table.insert').goto_definitions()
[<Definition full_name='dataset.table.Table.insert', description='def insert'>]
导入绝地武士 >>>Script('import dataset;dataset.table.table.insert')。goto_定义() []
您使用这些工具的具体原因是什么?考虑PyTrimo,PyDev,AptANA或者一些可以解决问题的方法。是的…原因是我真的用升华文字做一切,如果我能保持这种方式会更好。不过我会看看你提到的工具,谢谢@JosepValls“考虑一下Pycharm、PyDev和Aptana”。这完全是错误的。您列出的工具(除了Pycharm)在完成时要糟糕得多。没有人在那里工作。与thta相反,Pycharm是一个非常好的工具,但在完成时也不是更好。它们可能更糟。他们做得更好的是:重构,他们有一个很好的调试器和linting。你使用这些工具的具体原因是什么?考虑PyTrimo,PyDev,AptANA或者一些可以解决问题的方法。是的…原因是我真的用升华文字做一切,如果我能保持这种方式会更好。不过我会看看你提到的工具,谢谢@JosepValls“考虑一下Pycharm、PyDev和Aptana”。这完全是错误的。您列出的工具(除了Pycharm)在完成时要糟糕得多。没有人在那里工作。与thta相反,Pycharm是一个非常好的工具,但在完成时也不是更好。它们可能更糟。他们做得更好的是:重构,他们有一个很好的调试器和linting。
>>> import jedi
>>> jedi.Script('import dataset;dataset.table.Table.insert').goto_definitions()
[<Definition full_name='dataset.table.Table.insert', description='def insert'>]