我想知道如何用Julia语言确定a file.jl
是否作为脚本运行,例如在调用中:
bash$ julia file.jl
Run Code Online (Sandbox Code Playgroud)
例如,它仅在这种情况下必须启动一个函数main
。因此,我可以使用include('file.jl')
,而无需实际执行功能。
具体来说,我正在寻找一个已经在python问题中回答的类似问题:
def main():
# does something
if __name__ == '__main__':
main()
Run Code Online (Sandbox Code Playgroud)
编辑:更具体地说,当在非交互式(例如脚本)环境中使用时,该方法Base.isinteractive
(请参见此处)不能解决问题include('file.jl')
。
全局常量PROGRAM_FILE
包含从命令行传递给 Julia 的脚本名称(include
调用时不会更改)。
另一方面@__FILE__
宏为您提供它所在的文件的名称。
例如,如果您有一个文件:
a.jl
println(PROGRAM_FILE)
println(@__FILE__)
include("b.jl")
Run Code Online (Sandbox Code Playgroud)
b.jl
println(PROGRAM_FILE)
println(@__FILE__)
Run Code Online (Sandbox Code Playgroud)
你有以下行为:
$ julia a.jl
a.jl
D:\a.jl
a.jl
D:\b.jl
$ julia b.jl
b.jl
D:\b.jl
Run Code Online (Sandbox Code Playgroud)
总之:
PROGRAM_FILE
告诉您 Julia 启动时使用的文件名是什么;@__FILE__
告诉您实际在哪个文件中调用了宏。 归档时间: |
|
查看次数: |
502 次 |
最近记录: |