方法参数的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
答案 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