Wspólna konwencja w Pythonie jest zorganizować główną funkcjonalność skryptu w następujący sposób, więc może to być zarówno uruchomić jako skrypt bezpośrednio lub importowane bez wykonywania main()
w momencie importu:Czy w skrypcie Julii można sprawdzić, czy skrypt został zaimportowany lub wykonany bezpośrednio?
def main():
do_stuff()
if __name__ == '__main__':
main()
Czy istnieje podobna zmienna, która zostanie ustawiona w Julii, aby skrypt mógł wiedzieć, czy został zaimportowany przy użyciu require("script.jl"
), czy wykonać bezpośrednio?
Załóżmy, że mam dwa skrypty, a.jl
i b.jl
wraz z magic_function()
który zachowuje się w sposób następujący:
a.jl:
println("Did we execute a.jl directly? ", magic_function())
b.jl:
require("a.jl")
Wykonanie zapytania Dzięki polecenia skutkuje ...
> julia a.jl
Did we execute a.jl directly? true
> julia b.jl
Did we execute a.jl directly? false
Czy funkcja jak magic_function()
istnieje w bieżącej dystrybucji Julia?
Czy to jednak to samo? 'julia test.jl' gdzie skrypt jest po prostu' println (isinteractive()) 'wypisze' false', natomiast 'python test.py' /' print __name__ == '__main __' 'wypisze' True'. – DSM
To nie jest dokładnie to, czego potrzebuję: isinteractive() sprawdza, czy jest wykonywany z REPL lub z uruchomionego julia my_script.jl, czy nie uruchomiłem julia my_script.jl lub julia script_that_requires_my_script.jl. Aktualizuję pytanie dla jasności. –