ipython选项卡完成显示内置的方法参数

时间:2017-11-22 16:44:51

标签: ipython

方法参数的IPython选项卡完成显示的信息比我期望看到的更多:

snowch$ ipython3
Python 3.6.2 |Anaconda, Inc.| (default, Sep 21 2017, 18:29:43)
Type 'copyright', 'credits' or 'license' for more information
IPython 6.1.0 -- An enhanced Interactive Python. Type '?' for help.

In [1]: from my_package import MyClass

In [2]: cf = MyClass(<TAB>
                       abs()                                 api_key=
                       all()                                 api_key_filename=
                       any()                                 ArithmeticError                       >
                       api_endpoint=                         ascii()
                       ...

这也发生在实例方法上:

In [3]: cf.auth(<TAB>
                 abs()                                 ascii()
                       ...

问:当我在实例方法和构造函数上完成选项卡时,我是否应该看到像abs()这样的内置方法?

我的IPCompleter配置如下所示:

In [4]: %config IPCompleter
IPCompleter options
-----------------
IPCompleter.backslash_combining_completions=<Bool>
    Current: True
IPCompleter.debug=<Bool>
    Current: False
IPCompleter.greedy=<Bool>
    Current: False
IPCompleter.jedi_compute_type_timeout=<Int>
    Current: 400
IPCompleter.limit_to__all__=<Bool>
    Current: False
IPCompleter.merge_completions=<Bool>
    Current: True
IPCompleter.omit__names=<Enum>
    Current: 2
IPCompleter.use_jedi=<Bool>
    Current: True

1 个答案:

答案 0 :(得分:1)

是的,你应该,因为在方法或构造函数中进行函数调用是完全有效的。实际上,当你调用callable时,你可以在任何字段中编写任何表达式。

while (!feof(fileIn))

合理,所以在MyProgressMeter(any(params)) range(abs(value_a - value_b)) obj.frobulate(len(set(items))) print(len(my_list)) MyProgressMeter(<tab>obj.frobulate(<tab>print(<tab>上,您会看到本地/全局命名空间中构成sens的所有内容,以及命名参数。 实例方法当然没有什么不同。

注意:它并不为人所知,但range(<tab>实际上是一个构造函数:

range