f当使用?f或通过REPL检查时,用户定义的函数(比如说)如何具有有意义的打印输出help(f)
例如,想象一下我写下面的函数
function f(x::Float64, y::Float64)
return 2x - y^2
end
Run Code Online (Sandbox Code Playgroud)
如果我把它加载到julia会话中并尝试help(f)我得到以下内容:
julia> help(f)
f (generic function with 1 method)
Run Code Online (Sandbox Code Playgroud)
如果相反我想看到类似的东西怎么办?
julia> help(f)
f
Compute 2 times x minus y squared
Run Code Online (Sandbox Code Playgroud)
其中描述"计算2次x减y平方"的描述.我猜我的问题的答案可以从问题的答案中确定:"描述应该写在哪里?"
举例来说,如果我想在python中做同样的事情,我可以定义函数并将描述作为文档字符串:
def f(x, y):
"""
Compute 2 times x minus y squared
"""
return 2 * x - y ** 2
Run Code Online (Sandbox Code Playgroud)
当我输入help(f)或f?从IPython 时,这将使我的描述立即可用.
All*_*uce 52
您可以@doc在Julia版本0.4(2015年10月)及以上版本中使用该宏.
% 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.
Run Code Online (Sandbox Code Playgroud)
编辑:正如@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
Run Code Online (Sandbox Code Playgroud)
文档中有更多详细信息.
Har*_*din 20
在Julia v0.5 +中,您可以在函数定义上面编写多行字符串.(不再需要@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
Run Code Online (Sandbox Code Playgroud)
有关正确格式化文档字符串的更多信息,请参阅官方Julia文档.