अजगर में एक आम सम्मेलन के रूप में निम्नानुसार एक स्क्रिप्ट का मुख्य कार्यक्षमता की संरचना करने के है, इसलिए यह दोनों सीधे एक स्क्रिप्ट के रूप में चलाया जा सकता है या आयातित आयात के समय main()
को क्रियान्वित करने के बिना:जूलिया लिपि के भीतर, क्या आप बता सकते हैं कि स्क्रिप्ट को आयात या निष्पादित किया गया है या नहीं?
def main():
do_stuff()
if __name__ == '__main__':
main()
वहाँ एक है समान चर जो जूलिया में सेट हो जाता है, ताकि स्क्रिप्ट को पता चल सके कि इसे require("script.jl"
का उपयोग करके आयात किया गया था या सीधे निष्पादित किया गया था?
उदाहरण के लिए, कहते हैं कि मैं दो लिपियों, a.jl
और b.jl
है, एक magic_function()
कि प्रकार कार्य करता है के साथ:
a.jl:
println("Did we execute a.jl directly? ", magic_function())
b.jl:
require("a.jl")
अनुयायियों को निष्पादित करना में ...
> julia a.jl
Did we execute a.jl directly? true
> julia b.jl
Did we execute a.jl directly? false
कारण आदेशों परिणाम magic_function()
की तरह एक समारोह जूलिया की वर्तमान वितरण में मौजूद है?
क्या वही बात है, यद्यपि? 'julia test.jl' जहां स्क्रिप्ट बस' println (isinteractive()) 'false' प्रिंट करेगा, जबकि' python test.py'/'print __name__ == '__main __'' 'सत्य 'प्रिंट करेगा। – DSM
यह मेरी ज़रूरत नहीं है: isinteractive() परीक्षण करता है कि इसे आरईपीएल से या julia my_script.jl चलाने से निष्पादित किया गया है, नहीं, मैं julia my_script.jl या julia script_that_requires_my_script.jl चलाता हूं। स्पष्टता के लिए सवाल अद्यतन कर रहा है। –