initialization - python __main__ and __init__ proper usage -
since i'm rather new python particular aspect of language still opaque me.
so, assume project contains many files code stuff , 2 "service" files: __init__.py
, __main__.py
in __init__.py
there only:
if __name__ == "__main__": import package.__main__ __main__.main()
and in __main__.py
follows:
import package # ok import package2 # ok def main(): package.myfunc1() # can't find reference myfunc1 package2.myfunc2() # can't find reference myfunc2
so question is: why both packages visible while functions inside not? i've read source code google , still can't spot difference between , code. i'm using python 3.5.1
i assume, code in __init__
launch __main__
, __main__
launch rest of functions.
upd
well, apologies if confused code. idea stand behind __init__.py
file created ide when first package added decided fill code found on first github entry(my fault, though can re-used copy-paste).
strictly speaking need python construction, equivalent c code:
header.h void func1(){...} //in code1.c void func2(){...} //in code2.c #include "header.h" int main() //in main.c { func1(); func2(); return 0; }
and following code
import package import package2 if __name__ == "__main__": package.myfunc1() package2.myfunc2()
has same issue stated above, matter not in __init__.py
well:
__init__.py
useful import
(all subdirectories search import)
and
if __name__ == "__main__":
is use run module itself. par of code not executed if imported in other script
Comments
Post a Comment