Python¶i¶¥(¹ê»ÚÀ³¥Î¶}µo¹ê¾Ô)/µØ³¹µ{§Çû®Ñ®w
¤º®e¤j¿û
¥»®Ñ«ö·Óºc«Ø¤@Ó¯u¹ê³nÅ骺¶¶§Ç¡A³q¹L¤@Ó³e¬ï¥þ®Ñªº¥Ü¨Ò¡A¸ÑÄÀ¨ä¥L±Ðµ{¤¤¤@¯ë¤£·|Á¿¸Ñªº¦UºØPython»y¨¥¯S©Ê¡G±q§Q¥Î¤J¤fÂIÅý¥i«¥Îªº±±¨î¥x¸}¥»¦¨¬°·LªA°È¡A¤@ª½¨ì°ª®Ä¨Ï¥Îasvncio¾ã²z¨Ó¦Û¦hӼƾڷ½ªº¼Æ¾Ú¡C¦b¦¹¹Lµ{¤¤¡A¥»®Ñ±N¤¶²Ð°ò©óÃþ«¬´£¥Üªºlinting¡B§C¶}¾Pªº´ú¸Õ¡A¥H¤Î¨ä¥L¦Û°Ê°õ¦æªº½è¶qÀˬd¡A¥Hºt¥Ü¯u¹êªº¶}µo¹Lµ{¡C
¨ãÅé¦Ó¨¥¡A²Ä1³¹©M²Ä2³¹¤¶²Ð¶}µoÀô¹Ò©M¬ÛÃöªº¤u¨ã¡F²Ä3?6³¹²[»\¥N½X¥´¥]©M¨Ì¿à¶µ¤Àµo¡B´¡¥ó¬[ºc¡B¤¶±¡B»E¦X¦øªA¾¹µ¥¹ê¥Î¤º®e¡F²Ä7³¹»P²Ä8³¹°Q½×½uµ{©M«D¦P¨B½sµ{¬ÛÃö¤º®e¡A¥H¤Î¤@¨Ç°ª¯Å¥DÃD¡F²Ä9?12³¹¯A¤Î¥iµø¤Æ¡B½ÕÀu¡B¿ù»~³B²z¥H¤Î¼Æ¾Ú¤ÀªR¬ÛÃö¥DÃD¡C
§@ªÌ¤¶²Ð
(^)°¨×¡P«Âº¸§J´µ|³d½s:¤ý¬KµØ//±i¨qµØ|ĶªÌ:»¯§Q³q
°¨×¡P«Âº¸§J´µ¡]Matthew Wilkes¡^¡A¤@¦W¸gÅçÂ×´Iªº¶}µo¤Hû¡A¥L¨Ï¥ÎPython¶}µoWeb¶µ¥Ø¤w¸g¦³15¦~¤F¡C°£¤F¶}µo³nÅé¥~¡A¥LÁÙªø´Á¬°Python¶}µo¤Hû´£¨Ñ«ü¾É¡A¿n·¥±À°Ê¶}·½³nÅ骺µo®i¡A¨Ö¬°³\¦h¬y¦æªº®Ø¬[´£¥æ¹L¥N½X¡C¥L¹ï¶}·½³nÅ骺°^Äm¥Dn¶°¤¤¦b¸ê®Æ®wªº²Ó¸`¥H¤ÎWeb®Ø¬[ªº¦w¥þ¥æ¤¬¤è±¡C
¥Ø¿ý
«e¨¥
PÁÂ
¼f®ÕªÌ²¤¶
²Ä1³¹ 쫬³]p©MÀô¹Ò
1.1 Python¤¤ªºì«¬³]p
1.1.1 ¨Ï¥ÎREPL³]p쫬
1.1.2 ¨Ï¥ÎPython¸}¥»³]p쫬
1.1.3 ¨Ï¥Î¸}¥»©Mpdb³]p쫬
1.1.4 ¨Ï¥ÎJupyter³]p쫬
1.1.5 ¥»³¹ªºì«¬³]p
1.2 Àô¹Ò³]¸m
1.3 ³Ð«Ø·s¶µ¥Ø
1.3.1 ³]p¸}¥»ì«¬
1.3.2 ¦w¸Ë¨Ì¿à¶µ
1.4 ¾É¥X¨ì.py¤å¥ó
1.5 ºc«Ø©R¥O¦æ¤¶±
1.5.1 sys¼Ò¶ô©Margv
1.5.2 argparse
1.5.3 click
1.6 ¥´¯}¬É
1.6.1 »·µ{¤º®Ö
1.6.2 ¶}µo¤£¯à¦b¥»¦a¹B¦æªº¥N½X
1.7 §¹¦¨«áªº¸}¥»
1.8 ¤pµ²
§ó¦h¸ê·½
²Ä2³¹ ´ú¸Õ¡BÀˬd©Mlinting
2.1 ´ú¸Õ
2.1.1 ¦ó®É½s¼g´ú¸Õ
2.1.2 ³Ð«Ø®æ¦¡¤Æ¨ç¼Æ¨Ó´£°ª¥i´ú¸Õ©Ê
2.1.3 pytest
2.2 Ãþ«¬Àˬd
2.2.1 ¦w¸Ëmypy
2.2.2 ²K¥[Ãþ«¬´£¥Ü
2.2.3 ¤lÃþ©MÄ~©Ó
2.2.4 ªx«¬Ãþ«¬
2.2.5 ½Õ¸Õ¥H¤Î¹L«×¨Ï¥ÎÃþ«¬
2.2.6 ¦ó®É¨Ï¥ÎÃþ«¬¡A¦ó®ÉÁ×§K¨Ï¥ÎÃþ«¬
2.2.7 ±NÃþ«¬´£¥Ü»P¥N½X¤ÀÂ÷
2.3 linting
2.3.1 ¦w¸Ëflake8©Mblack
2.3.2 ×´_²{¦³¥N½X
2.3.3 ¦Û°Ê¹B¦æ
2.3.4 ©Ô¨ú®É¹B¦æ
2.4 ¤pµ²
§ó¦h¸ê·½
²Ä3³¹ ¥´¥]¸}¥»
3.1 ³N»y
3.2 ¥Ø¿ýµ²ºc
3.3 ¦w¸Ë¸}¥»©M¤¸¼Æ¾Ú
3.4 ¨Ì¿à¶µ
3.5 Án©ú¦¡°t¸m
3.5.1 ¦bsetup.py¤¤»ÝnÁ×§Kªº¨Æ¶µ
3.5.2 ¨Ï¥Îsetup.cfg
3.6 ¦Û©w¸q¯Á¤Þ¦øªA¾¹
3.6.1 ³Ð«Øpypiserver
3.6.2 «ù¤[©Ê
3.6.3 «O±K©Ê
3.6.4 §¹¾ã©Ê
3.6.5 wheel®æ¦¡©M¦b¦w¸Ë®É°õ¦æ¥N½X
3.7 ¨Ï¥Î¤J¤fÂI¦w¸Ë±±¨î¥x¸}¥»
3.8 README¡BDEVELOP©MCHANGES
3.8.1 Markdown®æ¦¡
3.8.2 reStructuredText®æ¦¡
3.8.3 README
3.8.4 CHANGES.md©Mª©¥»¤Æ
3.9 ¤W´å¨Ì¿à¶µª©¥»Âê©w
3.9.1 ¼eÃPÂê©w
3.9.2 ÄY®æÂê©w
3.9.3 À³¸Ó¨Ï¥ÎþºØÂê©w¤è®×
3.10 ¤W¶Çª©¥»
3.11 ¤pµ²
§ó¦h¸ê·½
²Ä4³¹ ±q¸}¥»¨ì®Ø¬[
4.1 ½s¼g·P´ú¾¹´¡¥ó
4.2 ²K¥[·sªº©R¥O¦æ¿ï¶µ
4.2.1 ¤l©R¥O
4.2.2 ©R¥O¿ï¶µ
4.2.3 ¿ù»~³B²z
4.2.4 ³q¹L¹ê°ÑÃþ«¬±N¸ÑªR¤u§@
¥æµ¹click
4.2.5 ¦Û©w¸qclick¹ê°ÑÃþ«¬
4.2.6 ±`¥Î¿ï¶µ
4.3 ¤¹³\¨Ï¥Î²Ä¤T¤è·P´ú¾¹´¡¥ó
4.3.1 ¨Ï¥Î©T©w¦WºÙÀË´ú´¡¥ó
4.3.2 ¨Ï¥Î¤J¤fÂIÀË´ú´¡¥ó
4.3.3 °t¸m¤å¥ó
4.3.4 Àô¹ÒÅܼÆ
4.3.5 apd.sensors»PÃþ¦üµ{§Çªº¤èªk¹ï¤ñ
4.4 ¤pµ²
§ó¦h¸ê·½
²Ä5³¹ ¨ä¥L¤¶±
5.1 Web·LªA°È
5.1.1 WSGI
5.1.2 API³]p
5.1.3 Flask
5.1.4 Python¸Ë¹¢¾¹
5.1.5 ´ú¸Õµø¹Ï¨ç¼Æ
5.1.6 ³¡¸p
5.2 ±N³nÅé§@¬°²Ä¤T¤è³nÅéÂX®i
5.2.1 »P¨ä¥L¶}µo¤Hû´Nñ¦W¹F¦¨¤@P
5.2.2 ©â¶H°òÃþ
5.2.3 «á³Æµ¦²¤
5.2.4 ºî¦X¹B¥Î
5.3 ×´_¥N½X¤¤ªº§Ç¦C¤Æ°ÝÃD
5.4 ª©¥»¤ÆAPI
5.5 ¤pµ²
§ó¦h¸ê·½
²Ä6³¹ »E¦X¹Lµ{
6.1 cookiecutter
6.2 ³Ð«Ø»E¦X¥]
6.2.1 ¸ê®Æ®wÃþ«¬
6.2.2 ¥Ü¨Ò
6.2.3 ¹ï¶H¡VÃö«Y¬M®g¾¹
6.2.4 ª©¥»¤Æ¸ê®Æ®w
6.2.5 ¸ü¤J¼Æ¾Ú
6.3 ·s§Þ³N
6.3.1 ¸ê®Æ®w
6.3.2 ¦Û©w¸q¯S©Ê¦æ¬°
6.3.3 ¥Í¦¨¾¹
6.4 ¤pµ²
§ó¦h¸ê·½
²Ä7³¹ ¨Ã¦æ©M«D¦P¨B
7.1 «Dªý¶ëIO
7.2 ¦h½uµ{»P¦h¶iµ{
7.2.1 §C¯Å½uµ{
7.2.2 ¦ì¤¸²Õ½X
7.2.3 Âê»P¦ºÂê
7.2.4 Á×§K¥þ§½ª¬ºA
7.2.5 ¨ä¥L¦P¨Bì»y
7.2.6 ProcessPoolExecutor
7.2.7 ¨Ï¥N½X¨Ï¥Î¦h½uµ{
7.3 asyncio
7.3.1 async def
7.3.2 await
7.3.3 async for
7.3.4 async with
7.3.5 «D¦P¨BÂê©wì»y
7.3.6 ¨Ï¥Î¦P¨B®w
7.3.7 ¨Ï¥N½X«D¦P¨B¤Æ
7.4 ¤ñ¸û
7.5 °µ¥