Slide 1

Slide 1 text

Re: Respect the Built-in Names ~ ੩తίʔυղੳπʔϧͷ׆༻ ~ PyCon JP 2017 Day2 LT (2017/9/9) @momijiame

Slide 2

Slide 2 text

͓લɺ୭Α • Twitter: @momijiame • Blog: http://blog.amedama.jp/ • Book: εϚʔτPythonϓϩάϥϛϯά • Proposal: ࣮ફSQLAlchemy (མબ)

Slide 3

Slide 3 text

͜ͷ LT ͷ͖͔͚ͬ • PyCon JP 2017 Day1 LT • @CardinalXaro ͞Μ • λΠτϧ: Respect the Built-in Names • ಺༰: ϏϧτΠϯؔ਺ʹ΋ਓݖ͸͋Δʂ

Slide 4

Slide 4 text

ਓݖ৵֐ͷྫ def max(elements): … def f(id, name): … str = 'Hello, World!'

Slide 5

Slide 5 text

͋Δ͋Δ…

Slide 6

Slide 6 text

ͦΜͳʹ͋Δ͋ΔͳΒ ࣗಈͰνΣοΫ͍ͨ͠

Slide 7

Slide 7 text

ຊ೔ͷϝΠϯςʔϚ

Slide 8

Slide 8 text

੩తίʔυղੳπʔϧͷ׆༻

Slide 9

Slide 9 text

੩తίʔυղੳπʔϧͱ͸ʁ • ιʔείʔυΛ੩తʹղੳ͢Δπʔϧͷ͜ͱ • ੩త: ιʔείʔυΛ࣮ࡍʹ͸ಈ͔͞ͳ͍ • యܕతʹ͸ AST (ந৅ߏ଄໦) Λղੳ͢Δ • ಈత: ιʔείʔυΛ࣮ࡍʹಈ͔ͯ͠ΈΔ

Slide 10

Slide 10 text

πʔϧΛ࢖ͬͨͱ͖ͷخ͠͞ • νΣοΫͯ͘͠ΕΔ͜ͱͷྫ • ίʔσΟϯάελΠϧʹԊ͍ͬͯΔ͔ʁ • όάͷݪҼͱͳΔΑ͏ͳهड़͸ͳ͍͔ʁ • ਓݖ৵֐͍ͯ͠ͳ͍͔ʁ

Slide 11

Slide 11 text

Pylint • Ϡό͍ॻ͖ํͯ͠Δͱڭ͑ͯ͘ΕΔ • ͘͢͝ྑ͍πʔϧ͚ͩͲӨ͕ബ͍ (ؾ͕͢Δ) $ pip install pylint

Slide 12

Slide 12 text

࣮ߦྫ • ઌ΄Ͳͷਓݖ৵֐͸શͯ Pylint Ͱर͑Δ $ pylint --disable=R,C overwrite.py No config file found, using default configuration ************* Module overwrite W: 1, 0: Redefining built-in 'str' (redefined-builtin) …(লུ)

Slide 13

Slide 13 text

ͱ͜ΖͰɺਓݖ৵֐Λ ݟ͚ͭͨͱ͖͸Ͳ͏͢Ε͹ʁ

Slide 14

Slide 14 text

࣮͸ରॲํ๏͕ PEP8 ʹʂ single_trailing_underscore_: used by convention to avoid conflicts with Python keyword, e.g. Tkinter.Toplevel(master, class_='ClassName') https://www.python.org/dev/peps/pep-0008/

Slide 15

Slide 15 text

ࣦΘΕͨਓݖΛऔΓ໭ͨ͠ྫ def max_(elements): … def f(id_, name): … str_ = 'Hello, World!'

Slide 16

Slide 16 text

·ͩ·ͩ͋ΔΑʂ • ศརͳ੩తղੳπʔϧͨͪ • pycodestyle (چ pep8 / ίʔσΟϯάελΠϧνΣοΧ) • pydocstyle (چ pep257 / ίʔσΟϯάελΠϧνΣοΧ) • Flake8 (ϓϥΨϒϧͳઃܭͷ൚༻੩తίʔυղੳπʔϧ) • Radon (ίʔυͷෳࡶ౓Λఆྔతʹଌఆ) • autopep8, yapf (ίʔυϑΥʔϚολ)

Slide 17

Slide 17 text

πʔϧΛ࢖͏্ͰͷϙΠϯτ • ॏཁ: ࣗಈͰνΣοΫ͕࣮ߦ͞ΕΔΑ͏ʹ͢Δ • ΤσΟλͱ౷߹͢Δ • อଘ࣌ʹࣗಈͰνΣοΫ͞ΕΔͱ͔ • CI ʹ૊ΈࠐΉ • ϓογϡ͢ΔͱࣗಈͰνΣοΫ͞ΕΔͱ͔

Slide 18

Slide 18 text

·ͱΊ • ੩తίʔυղੳπʔϧΛຯํʹ͚ͭΑ͏ • ਓݖ৵֐͕ى͖ͦ͏ͳͱ͖͸ޙΖʹ '_' ͚ͭΔ • ৭ʑͳ੩తղੳπʔϧ͕͋Δ • ҙࣝ͠ͳͯ͘΋πʔϧ͕૸Δ࢓૊Έ͕ॏཁ

Slide 19

Slide 19 text

͋Γ͕ͱ͏͍͟͝·ͨ͠