Một quy ước chung trong python là để cấu trúc các chức năng chính của một kịch bản như sau, vì vậy nó có thể được cả hai chạy như một kịch bản trực tiếp hoặc nhập khẩu mà không thực hiện main()
tại thời điểm nhập khẩu:Trong tập lệnh Julia, bạn có thể cho biết tập lệnh đã được nhập hoặc thực thi trực tiếp không?
def main():
do_stuff()
if __name__ == '__main__':
main()
Có biến tương tự được thiết lập trong Julia, sao cho tập lệnh có thể biết liệu nó có được nhập bằng cách sử dụng require("script.jl"
) hoặc được thực thi trực tiếp không?
Ví dụ, nói tôi có hai kịch bản, a.jl
và b.jl
, cùng với một magic_function()
mà ứng xử như sau:
a.jl:
println("Did we execute a.jl directly? ", magic_function())
b.jl:
require("a.jl")
Thực hiện các bước owing lệnh kết quả trong ...
> julia a.jl
Did we execute a.jl directly? true
> julia b.jl
Did we execute a.jl directly? false
Có chức năng như magic_function()
tồn tại trong phân phối hiện tại của Julia không?
Điều đó có giống nhau không? 'julia test.jl' trong đó kịch bản đơn giản là' println (isinteractive()) 'sẽ in' false', trong khi 'python test.py' /' print __name__ == '__main __' 'sẽ in' True'. – DSM
Đây không phải là những gì tôi cần: isinteractive() kiểm tra xem nó được thực hiện từ REPL hoặc từ chạy julia my_script.jl, không phải tôi chạy julia my_script.jl hoặc julia script_that_requires_my_script.jl. Cập nhật câu hỏi để rõ ràng. –