Upgrade to Pro — share decks privately, control downloads, hide ads and more …

python2_eol.pdf

 python2_eol.pdf

Python 2 EOL Party in Tokyo キーノートスピーチ (https://python2.connpass.com/event/161403/)

199x年代のPythonとこれから

B49cf5b7bfba036a25b3f20195d87ae4?s=128

Atsuo Ishimoto

February 15, 2020
Tweet

Transcript

  1. ͋ͷ͜Ζͷ1ZUIPO 1 1ZUIPO&0-1BSUZJO5PLZP "UTVP*TIJNPUP

  2. wQZUIPOKQ؅ཧਓ wϑϦʔϓϩάϥϚ ੴຊರ෉ !BUTVPJTIJNPUP ࣗݾ঺հ 2

  3. ͋ͷ͜Ζͷ1ZUIPO w ଟ෼ɺ࠷ॳʹ1ZUIPOΛ࢖ͬͨͷ͸೥ w όʔδϣϯ͸ଟ෼1ZUIPO w ଟ෼ɺ/JGUZ4FSWFͷϓϩάϥϚձٞࣨΈ͍ͨͳͱ͜Ͱݟ ͔͚ͨ w 1ZUIPOͬͯͳʹ͕ྑ͔ͬͨΜͩΖ͏ʁ

    3
  4. ౰࣌ͷ࠷ઌ୺ٕज़ w ΦϒδΣΫτࢦ޲ϓϩάϥϛϯά w ؔ਺ܕϓϩάϥϛϯά w Ͱ΋͍Ζ͍Ζ࢒೦ͩͬͨʜ 4

  5. ೔ຊޠ͕࢖͑ͳ͍ w 6OJDPEFͷެ։͸dͰɺ1ZUIPOʙϦϦʔε࣌ʹ ͸ଘࡏ͠ͳ͔ͬͨ w ͍ΖΜͳจࣈίʔυ͝ͱʹ഑ྀ͕ඞཁͳ҉ࠇ࣌୅ w 4IJGU+*4͸ѱເ 5

  6. 4IJGU+*4൛1ZUIPO w ·ͩ4PVSDF'PSHF΋ͳ͍࣌୅Ͱɺ࠷ॳ͸ݸਓͷ8FCαΠ τͰެ։ͯͨ͠ɻޙʹ1ZUIPOKQαΠτͰެ։ɻ w จࣈྻϦςϥϧ w ਖ਼نදݱ w PTQBUIɺHMPCͳͲɺϑΝΠϧ໊ؔ࿈ͷ೔ຊޠରԠ

    w 1ZUIPO͙Β͍·ͰϦϦʔε͍ͯͨ͠ 6
  7. ΨϕʔδίϨΫγϣϯ w ࢀরΧ΢ϯτํࣜͷΨϕʔδίϨΫγϣϯͷΈ w ॥؀ࢀরΛղܾͰ͖ͳ͍ 7 while 1: a =

    [] b = [a] a.append(b)
  8. είʔϓΛωετͰ͖ͳ͍ def spam(): ham = 1 def egg(): print "ham:",

    ham return egg 8
  9. ղܾࡦ def spam(): ham = 1 def egg(ham=ham): print "ham:",

    ham return egg 9
  10. ϩʔΧϧؔ਺ͷ࠶ؼ def spam(): def fact(n): if n < 1: return

    1 else: return fact(n-1) return fact 10
  11. ϩʔΧϧؔ਺ͷ࠶ؼ def spam(): def fact(n, fact=fact): if n < 1:

    return 1 else: return fact(n-1) return fact 11
  12. ͪͳΈʹ w σϑΥϧτҾ਺ͷධՁ͕ؔ਺ఆٛ࣌ͳͷ͸ɺ ԱଌͰ͕͢ ΩʔϫʔυҾ਺࣮૷࣌ʹΫϩʔδϟ͕ͳ͔͔ͬͨΒ 12 def spam(): defarg =

    [] def ham(arg=defarg): ... return ham IBN Λݺग़ͨ͠ͱ͖ʹɺ EFGBSHΛࢀরͰ͖ͳ͍
  13. 1ZUIPOYɺݴޠ෦෼͸ͦΜ ͳʹ͕Μ͹ͬͯͳ͔ͬͨ w    ✦ MBNCEB ✦ ͷจࣈྻϦςϥϧ

    w    ✦ ಛʹͳ͠ w    ✦ ಛʹͳ͠ w    ✦ ΩʔϫʔυҾ਺ 13 w 1ZUIPO͔Β d ·Ͱͷؒɺจ๏ʹ͸େ͖ͳมԽ͕ͳ͍ w Ϧετ಺แɾΠςϨʔλɾδΣωϨʔλͳͲɺ͓΋͠Ζ໨ͷػೳ͸Ҏ ߱ w    ✦ εϥΠεه๏ʹ4UFQ௥Ճ w    ✦ ύοέʔδ ✦ SBXTUSJOH ✦ BTTFSU
  14. ͳʹΛ͕Μ͹ͬͯͨͷ͔ʁ w ඪ४ϥΠϒϥϦ w ϚϧνϓϥοτϑΥʔϜ 14

  15. #BUUFSJFT*ODMVEFE w Πϯλʔωοτ͕ൃୡ͍ͯ͠ͳ͍࣌୅ɺඇৗʹॏཁͩͬͨ w ΋ͬͱ΋࣮༻తͳϚϧνϓϥοτϑΥʔϜɾΦʔϧΠϯϫϯͳ ϥΠϒϥϦूͩͬͨ w ςΩετॲཧ w σʔλߏ଄

    w )551'514.51ͳͲͷΠϯλʔωοτϓϩτίϧ w υΩϡϝϯτ΋όονϦʂ 15
  16. ϚϧνϓϥοτϑΥʔϜ w -JOVY #4%4VO)169"*9.4%048JO.BD 04#F04 w ౰࣌͸·ͩ7.ͳ͠ɻ$16΋Y͡Όͳ͍ w 8JOEPXT༻ͷ࢖͑Δ൚༻044ݴޠ͸͋·Γͳ͔ͬͨ 16

  17. ࠷ۙͷ1ZUIPO w (VJEPʹΑΔಠࡋ੍͔ΒՉ಄੍΁ w ຖ೥݄ʹϦϦʔε w UZQJOHػೳͷ֦େ͕ଓ͘ w 1&1'MFYJCMFGVODUJPOBOEWBSJBCMF BOOPUBUJPOT

    w 1&1&YQMJDJU5ZQF"MJBTFT 17
  18. ͜Ε͔Βͷ1ZUIPO w 1ZUIPO͕ϦϦʔε͞Εͯ΋͏೥ w 5ZQJOHؔ܎Ҏ֎ɺ໨ཱͬͨ1&1͕ͳ͍ 18

  19. ͜Ε͔Βͷ#BUUFSJFTJODMVEFE͸ʁ w ࠓ͸΋͏1Z1*͋Δ͠ɻɻɻ w ৽نͷඪ४Ϟδϡʔϧ਺͸ݮগ܏޲ w ࠷ۙͷඪ४ن֨͸͍Ζ͍ΖෳࡶͰɺ1ZUIPOίΞͷϝϯ όʔɾ1ZUIPOͷϦϦʔεִؒͰϝϯςφϯε͢Δͷ͸ແ ཧ͕͋Δ 19

  20. 20 όʔδϣϯผͷ৽نϞδϡʔϧ਺

  21. ඪ४Ϟδϡʔϧɾఆ൪ύο έʔδͷ࿝ٺԽ໰୊ w ݱࡏͷඪ४Ϟδϡʔϧͷେ෦෼͸ɺ1ZUIPOY࣌୅ʹ։ൃ ͞Εͨ΋ͷ w ଟ͘ͷఆ൪5IJSEQBSUZQBDLBHF΋1ZUIPO࣌୅ͷ΋ͷ ͕ଟ͍ w େن໛ͳෆཁϞδϡʔϧͷEFQSFDBUF͕ݕ౼த

    w UZQJOHBTZODඇରԠͳύοέʔδ͸͞ͼ͍͠ 21
  22. Զ͕ʮ1ZUIPOྺ൒ੈلʯΛܴ͑ΔͨΊʹ w ݱঢ়ɺ1ZUIPOݴޠ͸੒ख़͓ͯ͠Γɺ͜ͷ··࢖͍ଓ͚ΒΕ Δɻ w ͜Ε͚ͩීٴͨ͠ϓϩάϥϛϯάݴޠ͸ɺࡴͯ͠΋ࢮͳͳ͍ w ιϑτ΢ΤΞ͸ఀ଺Ͱ͖ͳ͍ɻ࢖͍΍͢͞ΛٻΊͯɺਐԽ͠ ଓ͚ͳ͚Ε͹ͳΒͳ͍ w

    1ZUIPO͸౗ͨ͠ɻ͔͠͠ୈೋɾୈࡾͷ1ZUIPO͕ඞͣݱΕ ΔͩΖ͏ɻ 22