Python の型ヒントの FAQ / FAQ about Python Type Hints

Python の型ヒントの FAQ / FAQ about Python Type Hints

漸進的型付け (Gradual Typing) について語る会 http://camphor.connpass.com/event/28692/ での発表資料です. 資料中の下線部はリンクになっています. リンク先にアクセスするためには PDF ファイルをダウンロードして下さい.

D984cd543d2abef28596cc5cfe82240c?s=128

Yusuke Miyazaki

March 20, 2016
Tweet

Transcript

  1. ઴ਐతܕ෇͚ʹ͍ͭͯޠΔձ Yusuke Miyazaki 2016/3/20 @CAMPHOR- HOUSE 1ZUIPOͷܕώϯτͷ'"2

  2. 1ZUIPOͷܕώϯτ w 1ZUIPOͰܕώϯτ 5ZQF)JOUT ͕ಋೖ w 1ZUIPOͷؔ਺Ξϊςʔγϣϯͷه๏Λར༻ • def add(x:

    int, y: int) -> int: ...
  3. ͜ͷࢿྉʹ͍ͭͯ w 1ZUIPOͷܕώϯτʹ͍ͭͯΑ͘ฉ͔ΕΔٙ໰΍ ݸਓతͳٙ໰఺ʹ͍ͭͯ2"ܗࣜͰ঺հ͠·͢ w 1ZUIPOͷܕώϯτͷॻ͖ํ͸ ͜ͷࢿྉͰઆ໌
 ͠·ͤΜ

  4. ܕώϯτͷࢿྉ͸

  5. ܕώϯτʹ͍ͭͯͷࢿྉ w 1&1Š5ZQF)JOUT w ܕώϯτͷॻ͖ํɾจ๏ͷఆٛͳͲ w 1&1Š5IF5IFPSZPG5ZQF)JOUT w ܕώϯτͷཧ࿦తഎܠͳͲ

  6. ܕώϯτʹ͍ͭͯͷࢿྉ w UZQJOHϞδϡʔϧͷυΩϡϝϯςʔγϣϯ ༁  w ܕώϯτͷهड़ʹ࢖༻͢ΔUZQJOHϞδϡʔϧʹ ͍ͭͯͷυΩϡϝϯςʔγϣϯ w ೔ຊޠ༁Λॻ͖·ͨ͠

    w UZQJOHQZ w UZQJOHϞδϡʔϧͷιʔείʔυ ϑΝΠϧͭ
  7. ܕώϯτʹ͍ͭͯͷࢿྉ w 1ZUIPOͱܕώϯτ 5ZQF)JOUT  w 1Z$PO+1Ͱൃද͞Εͨ΋ͷ w 3FWFOHFPGUIF5ZQFT ༁

     w ܕώϯτಋೖʹ౰ͨͬͯىͬͨٞ͜࿦ͷҰ෦
  8. 1ZUIPOҎલͰ ࢖͑·͔͢

  9. όοΫϙʔτΛར༻Ͱ͖·͢ w ܕώϯτͷهड़ʹ͸UZQJOHϞδϡʔϧΛར༻ w UZQJOHϞδϡʔϧͷόοΫϙʔτ͕ଘࡏ w QJQJOTUBMMUZQJOH

  10. 1ZUIPOͰ ࢖͑·͔͢

  11. 1ZUIPOͰ΋࢖͑·͢ w 1ZUIPOͰؔ਺ΞϊςʔγϣϯΛ༻͍ͣʹ
 ܕώϯτΛهड़͢Δํ๏͕ఏҊ͞Ε͍ͯΔ w ࢀߟ1ZUIPOͱܕώϯτ w ܕώϯτͷ৘ใΛελϒϑΝΠϧͱͯ͠ผͷ
 ϑΝΠϧʹهड़͢Δ͜ͱ΋Մೳ

  12. ܕώϯτΛॻ͘ ϝϦοτ͸

  13. ੩తܕνΣοΧʔ w NZQZͳͲͷ੩తܕνΣοΧʔΛར༻ग़དྷΔ w ϓϩάϥϜͷ࣮ߦલʹܕΤϥʔΛݕग़ग़དྷΔ͔΋

  14. *%&Ͱͷิ׬ w 1Z$IBSNͰ͸ܕώϯτͷ৘ใΛݩʹ w ิ׬ީิͷදࣔ w ܕΤϥʔͷࢦఠ

  15. υΩϡϝϯςʔγϣϯ w Ҏલ͔ΒυΩϡϝϯςʔγϣϯͰܕͷ৘ใΛ
 هड़͢Δ͜ͱ͸͋ͬͨ w FH4QIJOYͷ1ZUIPOυϝΠϯ w EPDTUSJOHͰ͸ͳ͘ܕώϯτͰॻ͚Δ

  16. ʮܕΛॻ͖ͨ͘ͳ͍ʯ

  17. ܕώϯτ͸ٛ຿Ͱ͸ͳ͍ w ॻ͖ͨ͘ͳ͍ͳΒແཧʹܕώϯτΛॻ͘ඞཁ͸ ͳ͍ w ݱ࣌఺Ͱ͸ ແཧʹॻ͍ͯ΋ಘΒΕΔϝϦοτ ͸͋·Γଟ͘ͳͦ͞͏ w ैདྷ͔Β͋Δؔ਺Ξϊςʔγϣϯͷར༻Λܕώϯ

    τͷΈʹݶఆ͢Δ΋ͷͰ͸ͳ͍
  18. ܕνΣοΫͰ࣮ߦ͕ ஗͘ͳΓ·ͤΜ͔

  19. ஗͘ͳΓ·ͤΜ w ݱࡏͷ$1ZUIPO͸࣮ߦ࣌ʹܕώϯτΛ༻͍ͨ ௥ՃͷνΣοΫΛߦ͏͜ͱ͸ͳ͍ w ܕώϯτΛهड़͢Δ͜ͱʹΑΔΦʔόʔϔου ͸ຆͲͳ͍

  20. ܕώϯτΛॻ͘ͱ ࣮ߦ͕଎͘ͳΓ·͔͢

  21. ݱ࣌఺Ͱ͸ ଎͘ͳΓ·ͤΜ w ݱࡏͷ$1ZUIPO͸ܕώϯτͷ৘ใΛ΋ͱʹ
 ࠷దԽ౳͸ߦΘͳ͍ w ݱ࣌఺Ͱ͸ ܕώϯτΛهड़ͯ͠΋࣮ߦ͕଎͘ ͳΔ͜ͱ͸͋Γ·ͤΜ

  22. ϥΠϒϥϦͷܕఆٛ͸

  23. UZQFTIFE w UZQFTIFEʹඪ४ϥΠϒϥϦͱαʔυύʔςΟʔ ͷϥΠϒϥϦͷܕఆٛͷελϒϑΝΠϧ͕·ͱ ·͍ͬͯΔ w ඪ४ϥΠϒϥϦ͸͍͍ͩͨἧ͍ͬͯΔ w αʔυύʔςΟʔͷϥΠϒϥϦ͸·ͩ·ͩ w

    DG%FpOJUFMZ5ZQFE
  24. ݱ࣌఺ͰNZQZ͸ ࣮༻తͰ͔͢

  25. Ұ౓࢖ͬͯΈ·͠ΐ͏ w ܕώϯτΛهड़͠ͳͯ͘΋ଟগ͸ਪ࿦͕ޮ͘ w ϥΠϒϥϦͷܕώϯτ͕ෆ଍͍ͯ͠ΔͨΊ JNQPSUઌͷελϒ͕ͳ͍ͱ͍͏Τϥʔ͕ग़Δ w TΦϓγϣϯͰΤϥʔϝοηʔδΛ཈੍Ͱ͖Δ w Ұ౓૸ΒͤͯΈͯྑͦ͞͏ͳΒ࢖ͬͯΈ·͠ΐ͏

    w $*Ͱ࣮ߦ͢ΔͳͲ
  26. কདྷੑ͸

  27. େৎ෉ͦ͏ w 1ZUIPOͷ#%'-ͷ(VJEPWBO3PTTVNࢯ͕ ܕώϯτͷಋೖΛੵۃతʹਐΊͨ w ܕώϯτͷจ๏͕1&1Ͱݻ·͍ͬͯΔ w ه๏ͷཚཱΛ๷͙ DG+BWB4DSJQU 

    w কདྷΑΓྑ͍πʔϧ͕ొ৔ͨ͠ͱ͖ʹ؆୯ʹ Ҡߦग़དྷΔ
  28. ·ͱΊ w ڵຯ͕͋Ε͹ܕώϯτΛॻ͘ͷ͕ྑͦ͞͏ w ϥΠϒϥϦ։ൃऀ͸ॻ͘ͱت͹ΕΔ͔΋ʜ  w UZQFTIFEΛॆ࣮ͤ͞·͠ΐ͏ w (JU)VCͰ13ΛૹΔ͚ͩ

    w ܕώϯτΛ׆༻ͨ͠Կ͔Λ࡞ͬͯ΋͍͍͔΋ w FHLPCJOCZ!DCBUBࢯ