Pythonã®åŠç¿ãé²ãã§ãããšã1ã€ã®ã¹ã¯ãªããã«é¢æ°ãã©ãã©ãå¢ããŠãç»é¢ãã¹ã¯ããŒã«ããã ãã§è¿·åã«ãªãâŠãããªçµéšã¯ãããŸãããïŒ ã³ãŒããæŽçããããã®æåŒ·ã®æŠåšããèªäœã¢ãžã¥ãŒã«ã§ãâš
åŠçã圹å²ããšã«å¥ãã¡ã€ã«ãžåãåºããå¿
èŠãªãšãã ãimportããŠäœ¿ãââãã®ã¹ã¿ã€ã«ã身ã«ã€ãããšãã¡ã€ã³åŠçãã¹ãããªèªã¿ããããªããæ©èœè¿œå ããã°ä¿®æ£ããã£ãšã©ã¯ã«ãªããŸããããŒã éçºãå°æ¥ã®ããªãèªèº«ã®ããã«ãããã²ä»æ¥ãã¹ã¿ãŒããŸãããð
ã¢ãžã¥ãŒã«ãšã¯ããã£ããèšãã°1ã€ã®Pythonãã¡ã€ã«ïŒ.pyïŒã®ããšãæšæºã©ã€ãã©ãªã®osãmathã®ããã«ãèªåã§äœã£ã.pyãã¡ã€ã«ãç«æŽŸãªã¢ãžã¥ãŒã«ãšããŠä»ã®ãã¡ã€ã«ããåŒã³åºããŸãðŠ
ãèªäœã¢ãžã¥ãŒã«ããšèããšã
pip installã§ããããã±ãŒãžãå ¬éããããšïŒããšæããã¡ã§ãããããã¯ãŸãå¥ã®è©±ãããã§ã¯åããããžã§ã¯ãå ã§èªäœã®.pyãã¡ã€ã«ãåŒã³åºãã·ã³ãã«ãªããæ¹ãæ±ããŸãã
æšæºã©ã€ãã©ãªãimportããã®ãšåãæèŠã§ãèªåã®ãã¡ã€ã«ãimportã§ããââãã®äºå®ãç¥ãã ãã§ãèšèšã®èªç±åºŠãäžæ°ã«åºãããŸãã
ãŸãã¯æå°æ§æã§åãã確èªããŸããããåããã©ã«ãã«2ã€ã®ãã¡ã€ã«ãçšæããŸãã
module2.pyïŒåŒã³åºãããåŽïŒ
def func2():
print("func2ã§ã")
module1.pyïŒåŒã³åºãåŽïŒ
import module2
def main():
module2.func2()
if __name__ == "__main__":
main()
ã¿ãŒããã«ã§python module1.pyãšå®è¡ãããšããfunc2ã§ãããšè¡šç€ºãããŸãð ãã€ã³ãã¯æ¬¡ã®3ã€ã§ãã
import module2ïŒæ¡åŒµå.pyãé€ãããã¡ã€ã«åãæå®module2.func2()ïŒãã¢ãžã¥ãŒã«å.颿°åãã§åŒã³åºãif __name__ == "__main__":ïŒãã®ãã¡ã€ã«ãçŽæ¥å®è¡ããããšãã ãåããããåŠçãå²ãif __name__ == "__main__" ãå¿
èŠãªã®ããPythonã£ãŠäžããé ã«å®è¡ããããã ããããããããã®ifæãããªããªãïŒããšæã£ãæ¹ãéãã§ãð ã§ããããããªããšå°ãå Žé¢ããããŸãã
ããšãã°module2.pyã®æ«å°Ÿã«ããã¹ãçšãšããŠfunc2()ããã®ãŸãŸåŒã¶è¡ãæžãããšããŸãããããããšâŠ
# module2.py
def func2():
print("func2ã§ã")
func2() # â ifæã§å²ããã«æžãã
ãã®ç¶æ ã§module1.pyãå®è¡ãããšãimportããç¬éã«func2()ãŸã§åæã«åããŠããŸãã®ã§ããã€ãŸããä»ã®ãã¡ã€ã«ããèªã¿èŸŒãŸããã ãã§æå³ããªãåŠçãèµ°ã£ãŠããŸãâ¡
ãããé²ãã®ãif __name__ == "__main__":ã§ãããã®å²ã¿ã®äžã«æžããåŠçã¯ããã®ãã¡ã€ã«ãçŽæ¥å®è¡ããããšãã ãåããimportããããšãã«ã¯åããŸããã
python module2.pyã§çŽæ¥å®è¡ â äžã®åŠçãåãïŒåäœãã¹ããåäœç¢ºèªã«äŸ¿å©ïŒimport module2ããã â ifæã®äžã¯å®è¡ãããªãããã«ããããåäœã§ãåãããã©ã€ãã©ãªãšããŠã䜿ãããäž¡å䜿ãã®ã¢ãžã¥ãŒã«ãäœããŸãð¡ïž
ãããžã§ã¯ãã倧ãããªããšãæ©èœããšã«ãã©ã«ãã§åããããªããŸãããããã©ã«ãéå±€ããŸããã importããæžãæ¹ããç¥ã£ãŠããã°ç°¡åã§ãã
ãããªãã¡ã€ã«æ§æãèããŠã¿ãŸãããð
project/
âââ module1.py
âââ sub_folder1/
âââ sub_module1.py
sub_module1.py
def sub_func1():
print("sub_func1ã§ã")
module1.py
from sub_folder1 import sub_module1
def main():
sub_module1.sub_func1()
if __name__ == "__main__":
main()
from ãã©ã«ãå import ã¢ãžã¥ãŒã«åã®æ§æã䜿ããšããµããã©ã«ãã®äžã®ã¢ãžã¥ãŒã«ãåŒã³åºããŸããã.ã§ã€ãªããšãã©ã«ãã®éå±€ã衚ãããšèŠããã°OKð³
ð¡ Python 3.3ããåã®ããŒãžã§ã³ã§ã¯ããã©ã«ãã®äžã«
__init__.pyãšãã空ãã¡ã€ã«ã眮ããªããšimportã§ããŸããã§ãããæè¿ã®ããŒãžã§ã³ã§ã¯äžèŠã§ãããå€ãç°å¢ã䜿ãå Žåã¯å¿µã®ããçšæããŠãããŸãããã
ãã©ã«ããããã«å ¥ãåã«ãªã£ãŠãããããã§ã€ãªãã°åŒã³åºããŸãã
from sub_folder1.sub_sub_folder import sub_sub_module
ãã€ã³ãã¯ãå®è¡ãããã¡ã€ã³ã¹ã¯ãªããïŒmodule1.pyïŒããã®çžå¯Ÿãã¹ãã§èããããšãäžçªäžã®éå±€ã«å®è¡ãã¡ã€ã«ã眮ãããã®äžã«éšåãšãªãã¢ãžã¥ãŒã«çŸ€ãæŽçããŠããã®ãå®ç³ã§ãð
æ £ããŠãããããããªæ§æã§ãããžã§ã¯ããçµããšæ¡åŒµã«åŒ·ããªããŸãã
utils/ãmodels/ãviews/ïŒif __name__ == "__main__":ãå
¥ããŠãåäœãã¹ãã§ããããã«ããŠãããä¿®æ£ãããšãã«ãã©ã®ãã¡ã€ã«ãéãã°ãããäžç®ã§åãããç¶æ ãä¿ãŠãã°åæ Œç¹ãæåã¯2ã3ãã¡ã€ã«ããå§ããŠãåŸã ã«åå²ã®æèŠãæŽãã§ãããŸãããð±
åç»ãšåãããŠæå ã«1åãããšããã©ãã§åå²ããã®ãæ£è§£ãããšããèšèšæèŠãäžæ°ã«è²ã¡ãŸãð
importã颿°ã®åºæ¬ã«äžå®ãæ®ãæ¹ã«ã¯ã察話圢åŒã§ãããã解説ããŠããããã®äžåããŽã£ãããã¢ãžã¥ãŒã«åã®åæãšãªã颿°ã»ã¯ã©ã¹ã®ç¥èãã¹ã ãŒãºã«æŽçã§ããŸãã
倿°ã»é¢æ°ã»ã¢ãžã¥ãŒã«ã»ããã±ãŒãžãŸã§ãäžåã§ç¶²çŸ
ãã__name__ãšã¯äœè
ãããšããçåã«ãèªç¶ã«çããŠããããè¿·ã£ãããŸãããã®å®çªã§ãã
ã¢ãžã¥ãŒã«ãããã±ãŒãžãåå空éãçžå¯Ÿimportã»çµ¶å¯Ÿimportã®éããŸã§èžã¿èŸŒãã§åŠã¹ãäžåããåãã³ãŒãããããèšèšãããã³ãŒãããžé²åãããæ¹ã«æé©ã§ãð
倧ããªã³ãŒãããŒã¹ããå£ãã«ãããä¿ã€ããã®ååãšå®è£ ãã¯ããã¯ãã³ã£ãããã¢ãžã¥ãŒã«å¢çã®èšèšãåãã³ãããã¹ããšã®é¢ä¿ãŸã§ç¶²çŸ ãããŠãããäžçŽè ã®å¿ èªæžã§ãã
ãã¢ãžã¥ãŒã«ãã©ãèšèšããã°åŸã§å°ããªããããšãã芳ç¹ãç« ç«ãŠã§æŽçãããŠãããæ¯æ¥ã®ã³ãŒãã£ã³ã°ãããã«ã¬ãã«ã¢ããããŸããäžçŽããäžçŽãžã®æ©æž¡ãã«æé©ã§ãã
import ã¢ãžã¥ãŒã«åãšfrom ã¢ãžã¥ãŒã«å import 颿°åã¯ã©ã䜿ãåããïŒãã¢ãžã¥ãŒã«åãæ®ããããªãåè
ã颿°ã ããµã¯ããšäœ¿ããããªãåŸè
ããšèŠãããšã·ã³ãã«ã§ããåè
ã¯mod.func()ãšæžãã®ã§ã©ãããæ¥ã颿°ãæç¢ºãåŸè
ã¯func()ãšçãæžããåé¢ãååã®è¡çªã«æ³šæãå¿
èŠã§ãããããžã§ã¯ãã倧ãããªãã»ã©åè
ãå®å¿æããããŸãð¡ïž
__init__.pyã£ãŠçµå±å¿
èŠïŒPython 3.3以éã¯å¿ é ã§ã¯ãããŸããããã ãããã©ã«ãããããã±ãŒãžããšããŠæç€ºããããšãããå€ãããŒãžã§ã³ã«å¯Ÿå¿ããå¿ èŠããããšãã¯ã空ã®ãŸãŸã§ã眮ããŠãããšå®å šã§ããããã±ãŒãžå šäœã®åæååŠçãæžãå ŽæãšããŠã䜿ããŸãã
2ã€ã®ã¢ãžã¥ãŒã«ããäºããimportãåããšããšã©ãŒãäºæããªãæåã®åå ã«ãªããŸããå¯ŸåŠæ³ã¯äž»ã«3ã€ããå ±éæ©èœã第3ã®ã¢ãžã¥ãŒã«ã«åãåºãããimportã颿°ã®äžã«æžãïŒé å»¶importïŒããããããäŸåé¢ä¿ãèŠçŽããã§ããèšèšã®èŠçŽããæ¬è³ªçãªè§£æ±ºçã«ãªãããšãå€ãã§ãð
絶察importã¯from project.utils import helperã®ããã«ãããžã§ã¯ãã«ãŒãããã®ãã«ãã¹ã§æžãæ¹æ³ãçžå¯Ÿimportã¯from .utils import helperã®ããã«çŸåšäœçœ®ããã®çžå¯Ÿãã¹ã§æžãæ¹æ³ã§ããããŒã éçºã§ã¯çµ¶å¯Ÿimportã®æ¹ãèªã¿æã«ããããã®ã§æšå¥šãããŸãð
åã¢ãžã¥ãŒã«ã«if __name__ == "__main__":ã§ã¡ããåäœç¢ºèªãæžããŠããã®ãæè»œã§ããæ¬æ Œçã«ãããªãpytestãå°å
¥ããtests/ãã©ã«ããåã£ãŠãã¹ããã¡ã€ã«ã䞊ã¹ãæ§æãå®çªããã¹ãããããšãã¢ãžã¥ãŒã«åå²ã®å®å¿æã段éãã«äžãããŸãâ
èªäœã¢ãžã¥ãŒã«ã¯ãPythonã§ã³ãŒããæžã人ãªãé¿ããŠéããªãééç¹ã§ãããšåæã«ãäžæ°ã«ããã£ãœããå¢ã匷åãªæŠåšã§ããä»å玹ä»ããimportã®æžãæ¹ãšif __name__ == "__main__":ã®ã€ãã£ãªã ããæŒãããã°ãããæããã®ã¯ãããŸããð ïž
ãŸãã¯2ãã¡ã€ã«ã«åãããšãããããæ £ããŠããããµããã©ã«ããåããæ©èœããšã«ãã¡ã€ã«ãæŽçããŠã¿ãŠãã ãããæ°ã¥ãããšããããªãã®ãããžã§ã¯ãã¯ãèªã¿ããããçŽãããããè²ãŠããããã³ãŒãããŒã¹ã«å€ãã£ãŠããã¯ãã§ãð 仿¥ããæ©éãé·ããªã£ãã¹ã¯ãªãããã²ãšã€åå²ããŠã¿ãŸãããïŒ
â ïž Windowsã»ãã¥ãªã…
ð§ çªç¶ã®æçš¿ã«ãã¡ã³éšç¶ïŒã©…
ð§© ããºã«ãè§£ãå¿«æãã³ãŒãã§…
âš ããã°ã©ã ã®åäœã軜ããã…
ð ãµãŒããŒãµã€ãéçºã®äžçãž…
âš é¢åãªWebäœæ¥ãèªååã…