0

В Clojure repl, когда вы забыли точное имя функции, я могу использовать find-doc, чтобы перечислить все функции, документация или имя которых содержат имя, которое я ищу. Например:IPython эквивалент Clojure find-doc?

user=> (xor 1 2) 
CompilerException java.lang.RuntimeException: Unable to resolve symbol: xor in this context, compiling:(/tmp/form-init4743234309821191777.clj:1:1) 

user=> (find-doc "xor") 
------------------------- 
clojure.core/bit-xor 
([x y] [x y & more]) 
    Bitwise exclusive or 
nil 

user=> (bit-xor 1 2) 
3 

Как сделать то же самое в IPython repl?

Или что такое метод Pythonic для поиска функций в repl? Спасибо.

ответ

0

Google «питон исключающее» дает мне (несколько вариантов вниз) официальная страница для справки

https://docs.python.org/2/reference/expressions.html

страница найти в том, что берет меня

5.8. Binary bitwise operations 
... 
xor_expr ::= and_expr | xor_expr "^" and_expr 
... 
The^operator yields the bitwise XOR (exclusive OR) of its arguments, which must be plain or long integers. The arguments are converted to a common type. 

Эта страница имеет форму поиска. Если я нахожу xor, я получаю ссылки на 16 страниц.

Я вижу, например operator.xor

который, если я, в IPython

import operator 
operator.xor? 

In [193]: operator.xor?? 
Type:  builtin_function_or_method 
String form: <built-in function xor> 
Docstring: xor(a, b) -- Same as a^b. 

operator.x<tab> также показать operator.xor.

x<tab> в Ipython не помогает, потому что нет встроенной функции, называемой xor.... Поскольку это реализовано как оператор, поиск будет отличаться от того, что является функцией.

Я использую полное завершение вкладки и ? и ??, чтобы посмотреть документы для функции и ее кода (если в Python). Насколько я знаю, Ipython не имеет ссылок на общую документацию Python.

Поскольку я много работаю с numpy, я мог бы также искать «Numpy исключающего», а также получить ссылки на документацию numpy для bitwise_xor и logical_xor.

np.bit<tab> 

приводит меня к

np.bitwise_xor? 
<docs for ufunc using the^operator> 

np.logical_xor показывает мне поэлементную операцию массива.

+0

Это означает, что не существует строгого эквивалента Clojure find-doc. Вместо этого мы используем Google для поиска функций, не так ли? – Chad

+0

Я взглянул на код 'find-doc'. Он собирает все документы в «пространстве имен» и печатает те, которые соответствуют «регулярному выражению». Ничего неясно об этом. У Python есть функция 'help' (вместо этого я использовал' ipython ?? '), который импортирует' pydoc', который может иметь другие инструменты, которые могут представлять интерес. – hpaulj

Смежные вопросы