PyCon JP 2018で使ったLTのスライドです
1Z$POͰస৬ͯ͠Έͨਓͷϗϯωגࣜձ͍͍ࣾੜ׆ฏඌݩل[email protected]@ZVNFDIJ!1
View Slide
ࣗݾհw ࣾձਓͷΤϯδχΞw 1ZUIPOͱ42-ͱ4IFMMͱ4MBDLΛ͢Δຖw ݱࡏಇ͘ʮ͍͍ੜ׆ʯͱ1Z$POͰΓ߹ͬͨw ৽ଔͰதখडୗ։ൃͷձࣾˠ͍͍ੜ׆!2
݄࣌ɺ1Z$PO+1ʜ!3
࣌ͷw ຖ&YDFMॻ͍ͯͯ೩͑ͯͯਏ͔ͬͨͷͰɺλΠϛϯά͕߹͑స৬Λߟ͍͑ͯͨw ίϛϡχςΟɾݴޠͷྲྀߦΓతʹ1ZUIPOɾ1)1ɾ+BWB4DSJQU͋ͨΓͰಇ͖͍ͨͱ͍͏ؾ࣋ͪw αʔόʔαΠυΓ͔͕ͨͬͨɺ+BWBͱ͔0CKFDUJWF$ͰΞϓϦϑϩϯτͷͪΐͬͱͨ͠ϓϩάϥϜ͔͠ॻ͚ͣw ʢෛԿ࡞ͬͯΔ͔ݴ͍ʹ͍͘ͷͰࣗࣾαʔϏε͕͍͍ʣ!4
͓Α͏ɺ͍͍ੜ׆ʢͨ·ͨ·͕ෆಈ࢈ʹ͍ͭͯͬͯͨͱ͍͏ԑ͋ͬͨʣ೩͑ͯͨݱऴΘͬͯɺ݄ʹଈ໘ˠ݄ʹଈೖࣾΈ͍ͨͳεϐʔυײ!5
͍͍ੜ׆Ҏલʹ1ZUIPOͰͬͯͨ͜ͱw ڝٕϓϩάϥϛϯάͷίϯςετͰॻ͘ʢҰ൪ଟ͍ʣw ଔॻ͘ͱ͖ʹը૾ͷจࣈྻΛຒΊࠐΉ͚ͩͷςϯϓϨʔτεΫϦϓτw 2JJUBͰλάݕࡧΛͯ͘͠ΕΔ4MBDL#PUw 8FCϖʔδͷεΫϨΠϐϯά!6
list = [int(input())for _ in range(n)]!7
ڈͷ1Z$POͷ-5Ͱ͜Μͳͷݟͨͳʜ!8
ઈରʹਅࣅͪ͠ΌͩΊʂ!9
ࢲͷྺ࢙͜ͷΜͰ͓͠·͍!10
1ZUIPOΛۀͰॻ͘w 8FC"1*Λॻ͍͍ͯ·͢w جຊతͳߏͷw 1ZUIPO'MBTL42-"MDIFNZ!11
1ZUIPOͬ͢͝ʔ͍ʂw ݁ߏଟػೳͳݴޠͰ໘ന͍w ͕ࣗݴޠͱͯ͠ಛʹ͍͍ͳͱࢥ͏ͷ࣍ͷͭw σϑΥϧτҾʹΑΔݺͼग़͠ͷ؆ུԽw ଟॏܧঝͱ.JYJO!12
σϑΥϧτҾͬ͢͝ʔ͍ʂw ྫ͑ϦΫΤετ͢Δͱ͖ʹɺσϑΥϧτͷλΠϜΞτ࣌ؒɺϝιουΛࢦఆ͍ͨ͠w +BWBͱ͔ͩͱϓϩύςΟʹ४උͯ͠TFU5JNFPVU͢ΔʁίϯετϥΫλΛผʹ࡞ΔʁͦΕҎલʹΞΫηε͢Δͱ͖ʹॻ͖͑Δॴଟ͘ͳ͍ʁ!13
1ZUIPOͳΒdef request(resource_path, params=None, body=None,method='GET', timeout=10): pass #ͱએݴ͓͚ͯ͠ɺԼهͯ͢ݺͼग़ͤΔrequest('/get_user/raara/')request('/new_live/', method='POST', body='info')request('/all_songs/', timeout=30)!14
MJTUͷσϑΥϧτ᠘>>> def add_user(users=[], user_name='mirei'):... users.append(user_name)... return users...>>> print(add_user())['mirei']>>> print(add_user())['mirei', 'mirei']!15
ଟॏܧঝͱ.JYJOw 1ZUIPOݴޠϨϕϧͰଟॏܧঝΛαϙʔτw ଟॏܧঝͰॲཧ͕Ϳ͔ͭΔ͜ͱ͋ΓɺϕʔεͷΫϥεͷܧঝʴڞ௨ॲཧͷ.JYJOΛೖΕࠐΉӡ༻w ͜ΕʹΑΓڞ௨ॲཧΛ࣋ͨͤͭͭɺదʹΓ͚ΔॲཧΛ࣮ݱՄೳʹ͍ͯ͠Δ!16
༨ஊw 1ZUIPOจࣈྻͰݺͼग़͢ϝιουΛม͑ͨΓͰ͖Δgetattr(object, name[, default])w খ͍͞ϓϩάϥϜͰඪ४ೖग़ྗจࣈྻʹΑͬͯಈ࡞Λม͍͑ͨͱ͖ʹศརͩͬͨΓʢ࣮ࡍ*$'1$ͱ͍͏ϓϩάϥϛϯάίϯςετͰ؆қͷίϯόʔλʔΛ࡞Δͱ͖ʹ׆༂ͯ͠·ͨ͠ʣ!17
1ZUIPOϠόΠʜw"UUSJCVUF&SSPS5ZQF&SSPSw 1ZUIPOܥɺܥ͕ϓϩμΫτ͝ͱͰ͍ࠞͬͯ͡Δw ฐࣾੲ͔Βಈ͍͍ͯΔαʔϏε·ͩܥ͕Δw ͜͜ҎͷϓϩμΫτܥͰ͔͠ॻ͍ͯͳ͍w ϥΠϒϥϦͷରԠঢ়گͱ͔͋Γ՝!18
1Z$IBSN͋Γ͕ͱ͏ʂw 5ZQPൃݟʹཱͭw ϑΥʔϚοτ(PEw ΊͬͪΌ͍͍ײ͡ʹΠϯσϯτͯ͘͠ΕΔw ͔ͯͳ͍ͱɺϚδແཧ!19
ͱ͍͏Θ͚ͰʜΈͳ͞ΜࣄͰ1ZUIPOॻ͜͏ʂ!20
1Z$POͰ1ZUIPOॻ͘ࣄΛ࢝ΊΑ͏ʂ!21
1ZUIPOॻ͍ͯಇ͍ͯΈͯw͖ͳݴޠΛॻ͍ͯಇ͍͍ͯΔͱݴ͑Δॆ࣮ײʂw ͍ίʔυͰػೳ͕࣮ݱ͞ΕΔ͜ͱͷײಈɺੜ࢈ੑߴ͍w ಈతܕ͚ͷͨΊʹҙࣝ͠ͳ͍ͱ͍͚ͳ͍͜ͱ͕ଟ͍͕ɺಈతܕ͚͔ͩΒͦ͜ͷϝϦοτେ͖͍!22
1ZUIPOΔͳΒ͍͍ੜ׆ʂ͋Γ͕ͱ͏ʂ!23