ãªããžã§ã¯ãæåããã°ã©ãã³ã°ãšã¿ã€ãã³ã°ã§å
ç¢ã§å®å
šãªPythonã³ãŒããæžã
Pythonã§ãªããžã§ã¯ãæåããã°ã©ãã³ã°ããªãåŠã¶ã¹ããªã®ãâ
äžã€ãã¡ã³ããã³ã¹ãç°¡åïŒ
ããã·ãŒãžã£æåããã°ã©ãã³ã°ã§ã¯ãã³ãŒãä¿®æ£æã«äžã€äžã€æ¢ããŠä¿®æ£ããªããã°ãªãããä¿®æ£ããéšåãå¿ãããããªããŸããããªããžã§ã¯ãæåããã°ã©ãã³ã°ã§ã¯ä¿®æ£ãã¹ãéšåãã¢ãžã¥ãŒã«åãããŠããã®ã§ããã®ã¢ãžã¥ãŒã«ãèŠã€ããŠç°¡åãã€è¿
éã«ä¿®æ£ãå¯èœã§ããã€ãŸãã¡ã³ããã³ã¹ãç°¡åã ãšããããšã§ãããŸãããªããžã§ã¯ãæåããã°ã©ãã³ã°ã®ååã«åºã¥ããŠæœè±¡åãã«ãã»ã«åãããã¯ã©ã¹ã¯ãä»ã®éçºè
ããã®ã¯ã©ã¹å
éšããžãã¯ãæ·±ãçè§£ããããšãªãç°¡åã«ã€ã³ããŒãããŠäœ¿çšã§ããç¶æ¿ãéããŠæ¡åŒµããŠäœ¿çšã§ããŸãã
äž¡æ¹ãçç£æ§ãé«ãŸãïŒ
Pythonã§ãã£ãŒãã©ãŒãã³ã°ããã·ã³ã©ãŒãã³ã°ãããŒã¿ãµã€ãšã³ã¹ã¢ããªã±ãŒã·ã§ã³ãå®è£
ãŸãã¯ç ç©¶ãããšãã¯ãã³ãŒãã®æå³åæãšããªã¡ãŒã¿ãŒãšã¢ãã«ãå€ããªãã察ç
§ã³ãŒããæžãããšããããããŸãããã®ãšãããã®ã³ãŒããæç¶ãæåããã°ã©ãã³ã°ã§æžããšãã³ãŒãã®æŽçãã§ãããçç£æ§ãäœäžããŸãããããã®ã³ãŒããå®éã®ç ç©¶ç¶æ³ã«æå³çã«è¿ããªããžã§ã¯ãæåããã°ã©ãã³ã°ã§æžãããšã§ãèªã¿ãããçç£æ§ã®é«ãã³ãŒãã§æžãããšãã§ããŸãã
äžãåçšå€§åãœãããŠã§ã¢éçºå¯èœïŒ
Pythonã§Webãéçºãããšãã¯ãdjangoãflaskãfastapiãªã©ã®ãã¬ãŒã ã¯ãŒã¯ã䜿çšããŸãããã®å Žåã1ã€ã®çç±ã§ãªããžã§ã¯ãæåããã°ã©ãã³ã°ãé©çšããŠå
ç¢ãªãœãããŠã§ã¢è£œåãäœæã§ããŸãããã®ããããªããžã§ã¯ãæåããã°ã©ãã³ã°ã¯ãå®å®æ§ãä¿èšŒãã忥çšã®å€§èŠæš¡ãœãããŠã§ã¢è£œåãéçºããéã«éåžžã«ãã䜿ãããææ³ã§ãããããã£ãŠãPythonãä»ããŠåäžã®ã¢ããªã±ãŒã·ã§ã³ãäœæããå Žåã¯ããªããžã§ã¯ãæåããã°ã©ãã³ã°ã®æŠå¿µãäžå¯æ¬ ã§ãã
ãªããžã§ã¯ãæåããã°ã©ãã³ã°ãåŠã³ã
é äžã§å®å
šã§ã¹ã±ãŒã©ãã«ãªéçºãïŒ
Pythonãªããžã§ã¯ãæåããã°ã©ãã³ã°ã«ãã
WebéçºãããŒã¿ãµã€ãšã³ã¹ãæ©æ¢°åŠç¿ããã£ãŒãã©ãŒãã³ã°æŽ»çšãŸã§ïŒ
é«ãçç£æ§ãšå®å®æ§ãèªããªããžã§ã¯ãæåããã°ã©ãã³ã°ïŒ
Pythonã§å®å
šã«åŠã³ãŸãããã
ãªããžã§ã¯ãæåããã°ã©ãã³ã°ã¯ãããã°ã©ã ãæè»ãã€å€æŽãããããããããå€§èŠæš¡ãªãœãããŠã§ã¢éçºãå®å®æ§ãèŠæ±ãããéçºã«å€çšãããŠããŸããããã«ãéçºãšä¿å®ãç°¡åã§ãããçŽæçãªã³ãŒãåæãå¯èœã«ããå©ç¹ããããŸãã
PythonãšããçŽæçãªéçºããŒã«ãšãªããžã§ã¯ãæåããã°ã©ãã³ã°ã®çµã¿åããã¯ãéçºã®å¹çæ§ãšçŽææ§ã®äž¡æ¹ãããããããšãã§ããŸãã
ãããªæ¹ãèããšããã§ãã
ãªããžã§ã¯ãæåããã°ã©ãã³ã°å
¥éè
OOPã®æŠå¿µ
äœãç¥ãããæ¹
ã¿ã€ããŠãŒã¶ãŒ
å®å
šã§ãã£ãã
PythonãæŽ»çšããã人
classææ³ãé£ããæ¹
æ¡ä»¶æã颿°ã倿°ã¯ããããŸãããã¯ã©ã¹ã䜿çšã§ããªãå
å®åè
æ©æ¢°åŠç¿ããŠã§ãéçºãªã©
OOPãå®åã«
é©çšãããæ¹
以äžã®4ã€ã®æŠå¿µãè¬çŸ©ã«ãã¹ãŠæº¶ãããŸããð§š
äžã€ããªããžã§ã¯ãæåããã°ã©ãã³ã°ã®çè§£ã
ãªããžã§ã¯ãæåããã°ã©ãã³ã°ãšã¯ãå®éã®äžçã«è¿ã¥ããŠã¢ãã«åããã³ãŒãã®åå©çšæ§ãã¡ã³ããã³ã¹åªç§æ§ãçç£æ§ãå¢å€§ãããã³ãŒãã£ã³ã°æè¡ã§ããå®éã«åªãããœãããŠã§ã¢è£œåããªããžã§ã¯ãæåãå®ãã€ã€äœãããŠããŸããã
ãªããžã§ã¯ãæåããã°ã©ãã³ã°ãšã¯äœããçè§£ããOOPã®ååã«åŸã£ãŠRobotã®èšèšå³ãäœæããªãããå®éã«é©çšããæ¹æ³ãæããŠãããŸããããã«ãããå®å
šã§ã¹ã±ãŒã©ãã«ã§å
ç¢ãªã³ãŒããæžãããšãã§ããŸããããã ãã§ãªããå®éã®ãã¬ãŒã ã¯ãŒã¯ãã©ã€ãã©ãªã䜿ã£ãŠæå³ã®ãããã®ãéçºããéã«ã©ã®ããã«é©çšããããã瀺ããŸãã
äž¡æ¹ã Pythonã§ãªããžã§ã¯ãæåããã°ã©ãã³ã°ãããæ¹æ³
åã«ã¯ã©ã¹ã ãã䜿çšããã®ã¯ãªããžã§ã¯ãæåããã°ã©ãã³ã°ã§ã¯ãããŸããã OOPã®åºæ¬ååãå®ããã¯ã©ã¹ã®äœ¿ãæ¹ãæããŠãããŸãããã®ããã«ã¯ãåºæ¬çãªãã³ã¬ãŒã¿ã®äœ¿ãæ¹ãåŠã¶ããšããå§ããŸãããããŠOOPååã§ããã«ãã»ã«åãé èœåãç¶æ¿ãå€åæ§ãã³ã³ããžã·ã§ã³ãªã©äžã€äžã€çŽæ¥ã³ãŒãã§äžç·ã«æã¡ãªããçè§£ããããšã«ãªããŸããæåŸã«ãã³ã³ãã¥ãŒã¿å·¥åŠã®æãåºæ¬ãšãªãããŒã¿æ§é ã§ããStackãšQueueããªããžã§ã¯ãæåããã°ã©ãã³ã°ã䜿ã£ãŠäœã£ãŠã¿ãªãããå®éã®é©çšãŸã§ããããšãã§ããŸãã
äžãã¿ã€ãã®ãªãPythonã§ typing ãè¡ãæ¹æ³ã
ç°¡åã§ç°¡æœãªææ³ãšåä»ãã®ãªãPythonã§éçºããå Žåãããå°ãªãã³ãŒãã§ããå€ãã®äœæ¥ãè¡ãããšãã§ãããããã§èšå€§ãªçç£åãèªããŸããããããã¿ã€ãã³ã°ã®ãªãPythonã§å€§èŠæš¡ãªãœãããŠã§ã¢ãéçºãããšãã¯ãã³ãŒãã®è€éããäžãããã¡ã³ããã³ã¹ãé£ãããªããã³ã©ãã¬ãŒã·ã§ã³ãé£ãããªããŸãããã®ããã«ãPythonã¯Type HintãæäŸãå§ããŸããããã§ã«æµ®äžããŠããWebéçºãã¬ãŒã ã¯ãŒã¯ã§ããFastAPIãType Hintã䜿çšããŠéçºããããšããå§ãããŸãã Type Hintã广çã«äœ¿çšããæ¹æ³ãåŠã³ãŸãããŸããmypyãšpyrightããã±ãŒãžãä»ããŠåãã³ããè¶
ããŠå®éã®ã³ãŒããå®è¡ããåã«åã調ã¹ãæ¹æ³ãæããŠãããŸãã
ãããããªããžã§ã¯ãæåããã°ã©ãã³ã°ã«ãããã£ãŒãã©ãŒãã³ã°ã³ãŒãã®ãªãã¡ã¯ã¿ãªã³ã°ãDjangoã³ãŒãè§£æ
ç¥èã®å
±æã«ãšã©ãŸãããåŠãã ããšãå®éã«ã©ã®ããã«é©çšããããããç¥ããããŸãããŸãåŠãã ããšãããšã«ãæãåºç€ãšãªãè³ææ§é ã§ããLinked Liståºç€ã®StackãçŽæ¥éçºããŠã¿ãŸãããããŠãå®éã®åŠè¡çã§äœ¿ããããã£ãŒãã©ãŒãã³ã°ã³ãŒããšãWebéçºã§ãªããžã§ã¯ãæåããã°ã©ãã³ã°ãã©ã®ããã«é©çšããããããç¥ããããŸãã
ç§ã®è¬çŸ©ã ãã®ç¹å¥ãªãã€ã³ãïŒ
- classææ³ã ãããç¥ããããŸããã
ã¯ã©ã¹ã®ææ³ãæããŠãããã ãã§ãªãããªããªããžã§ã¯ãæåããã°ã©ãã³ã°ãããã®ããã©ã®ããã«ãã¹ãããããŸããŸãªäºäŸãæããŠèª¬æããŸããå®éã«è¬çŸ©ã§ã¯ã¯ã©ã¹ãå¿
ã䜿çšããªããã°ãªããªãäŸãæã£ãŠææ³ã説æããåŠãã ããšã掻çšããããã«åºç€è³ææ§é ããªããžã§ã¯ãæåã®ååã«åŸã£ãŠéçºããå®äœ¿çšã®äºäŸããèŠãããäºå®ã§ãã - C++ãJavaãŠãŒã¶ãŒãç°¡åã«èãããšãã§ããè¬çŸ©ã§ãã
åŸæ¥ãä»ã®èšèªïŒC++ãJavaãªã©ïŒã§ãªããžã§ã¯ãæåããã°ã©ãã³ã°ãåŠãã æ¹ããpythonã§ãªããžã§ã¯ãæåããã°ã©ãã³ã°ææ³ã身ã«ã€ãããšãã«æžæãããšããããããŸããçç±ã¯C++ãJavaã«æ¯ã¹ãŠPythonã§ã¯éçºè
éã®æé»çãªçŽæã§æžãææ³ãå€ãããã§ãã Pythonããªããžã§ã¯ãæåããã°ã©ãã³ã°èšèªã§ãããC ++ãJavaãšã¯ç°ãªããPythonã ãã®ç¹åŸŽããããŸãããã®æ©èœã説æããæ¢åã®èšèªãšã®éãã説æããŸããããã«ãããC++ãJavaã§åŠãã æ¹ãPythonã§ãªããžã§ã¯ãæåããã°ã©ãã³ã°ãããéã®ã¬ã€ããšãªãè¬åº§ã§ãã - æ§ã
ãªTypeã®ã³ãŒãã®æžãæ¹ãå
¬éããŸãã
Pythonã¯åçåèšèªã§ãããããã§ãéãéçºé床ãšé«ãçç£æ§ãèªããŸãããã¿ã€ãã³ã°ãããªããšã¡ã³ããã³ã¹ãé£ãããªãããã°ãçãããšãã«ãããã°ãé£ãããªããŸãããããã£ãŠãæ£åŒã«Pythonã§ã¯ã¿ã€ããã³ããå°å
¥ããŸãããæ¢åã®å€ãã®è¬åº§ã§ã¯ãã¿ã€ããã³ãã«ã€ããŠåºæ¬çãªè³æïŒintãfloatãstrãªã©ïŒã§ã®ã¿èšåããŠé²ãããšãå€ãã§ããããããããã§ã¯ãã£ãããšã¿ã€ãã³ã°ãããã®ã¯é£ããã§ãããã®ã³ãŒã¹ã§ã¯ãåºæ¬ããŒã¿åã ãã§ãªããUnion TypeãOptianal TypeãGeneric Typeãªã©ãããŸããŸãªã¿ã€ãããç¥ããããŸããããã«ãããPythonã§ã³ãŒããæžããšãã«å®å
šã§ãã£ãããšæžãããšãã§ããŸãããŸããåã«ã¿ã€ããã³ãã«ãšã©ãŸãããTypeããã§ãã¯ããæ¹æ³ãŸã§ãç¥ããããäºå®ã§ãã