Как могут определяемые пользователем функции (скажем f
) иметь значимые распечатки при проверке через REPL с использованием ?f
илиhelp(f)
Например, представьте, что я пишу следующую функцию
function f(x::Float64, y::Float64)
return 2x - y^2
end
Если я загружу это в сеанс julia и попробую, help(f)
я получу следующее:
julia> help(f)
f (generic function with 1 method)
Что, если бы вместо этого я хотел увидеть что-то вроде
julia> help(f)
f
Compute 2 times x minus y squared
где где-то написано описание "Вычислить 2 раза x минус y в квадрате". Думаю, ответ на мой вопрос можно определить по ответу на вопрос «Где, где должно быть написано описание?»
В качестве примера, если бы я хотел сделать то же самое в python, я мог бы определить функцию и поместить описание в виде строки документации:
def f(x, y):
"""
Compute 2 times x minus y squared
"""
return 2 * x - y ** 2
что сделает мое описание доступным сразу после ввода текста help(f)
или f?
из IPython.
Ответы:
Вы можете использовать
@doc
макрос в Julia версии 0.4 (октябрь 2015 г.) и выше.% julia _ _ _ _(_)_ | A fresh approach to technical computing (_) | (_) (_) | Documentation: http://docs.julialang.org _ _ _| |_ __ _ | Type "?help" for help. | | | | | | |/ _` | | | | |_| | | | (_| | | Version 0.4.0 (2015-10-08 06:20 UTC) _/ |\__'_|_|_|\__'_| | Official http://julialang.org/ release |__/ | x86_64-apple-darwin13.4.0 julia> @doc """ Compute 2 times x minus y squared. """ -> function f(x::Float64, y::Float64) return 2x - y^2 end f (generic function with 1 method) julia> @doc f Compute 2 times x minus y squared.
Изменить: как указал @Harrison Grodin, версии 0.5 и выше поддерживают сокращенный синтаксис, а также Markdown, LaTEX и некоторые другие полезности:
""" Calculate the left Riemann sum[^1] approximating ``\int_a^b f(x) dx = F(b) - F(a).`` [^1]: Thomas G., Finney R. (1996), Calculus and Analytic Geometry, Addison Wesley, ISBN 0-201-53174-7 """ function rs(a, b, d, f) end
Подробности в документации .
источник
В Julia v0.5 + ( включая более свежие версии Julia, такие как 1.2+ ) вы можете написать многострочную строку над определением функции. (Больше не нужно
@doc
.)julia> """ cube(x) Compute the cube of `x`, ``x^3``. # Examples ```jldoctest julia> cube(2) 8 ``` """ function cube(x) x^3 end cube help?> cube search: Cdouble isexecutable Ac_mul_B Ac_mul_Bc Ac_mul_B! Ac_mul_Bc! cumsum_kbn cube(x) Compute the cube of x, x^3. Examples ≡≡≡≡≡≡≡≡≡≡ julia> cube(2) 8
Для получения дополнительной информации о правильном форматировании ваших строк документации см. Официальную документацию Julia .
источник