Upgrade to Pro
— share decks privately, control downloads, hide ads and more …
Speaker Deck
Features
Speaker Deck
PRO
Sign in
Sign up for free
Search
Search
pythonでメタプログラミング(メタクラス編)
Search
Daiki Ikeshima
March 25, 2021
Programming
1
440
pythonでメタプログラミング(メタクラス編)
Daiki Ikeshima
March 25, 2021
Tweet
Share
More Decks by Daiki Ikeshima
See All by Daiki Ikeshima
MLOpsの「あるある」課題の解決と、そのためのライブラリgokart
mski_iksm
1
1.1k
gokartのキャッシュ競合防止のロック機能
mski_iksm
0
2k
macのunicode正規化.pdf
mski_iksm
0
29k
実臨床・Webサービス領域での機械学習研究 開発の標準化
mski_iksm
8
25k
高速化・並列化・標準化で スケールするML予測システムの開発
mski_iksm
5
3.1k
パイプラインツールgokartのタスク競合を解消した話
mski_iksm
0
180
Other Decks in Programming
See All in Programming
コミュニティ駆動 AWS CDK ライブラリ「Open Constructs Library」 / community-cdk-library
gotok365
2
240
Honoをフロントエンドで使う 3つのやり方
yusukebe
7
3.5k
Djangoにおける複数ユーザー種別認証の設計アプローチ@DjangoCongress JP 2025
delhi09
PRO
4
470
楽しく向き合う例外対応
okutsu
0
670
color-scheme: light dark; を完全に理解する
uhyo
7
490
Datadog DBMでなにができる? JDDUG Meetup#7
nealle
0
140
kintone開発を効率化するためにチームで試した施策とその結果を大放出!
oguemon
0
150
sappoRo.R #12 初心者セッション
kosugitti
0
280
メンテが命: PHPフレームワークのコンテナ化とアップグレード戦略
shunta27
0
300
Honoとフロントエンドの 型安全性について
yodaka
7
1.5k
.NET Frameworkでも汎用ホストが使いたい!
tomokusaba
0
200
15分で学ぶDuckDBの可愛い使い方 DuckDBの最近の更新
notrogue
3
520
Featured
See All Featured
CSS Pre-Processors: Stylus, Less & Sass
bermonpainter
356
29k
Practical Orchestrator
shlominoach
186
10k
Performance Is Good for Brains [We Love Speed 2024]
tammyeverts
7
640
Documentation Writing (for coders)
carmenintech
67
4.6k
How to Think Like a Performance Engineer
csswizardry
22
1.4k
Bash Introduction
62gerente
611
210k
実際に使うSQLの書き方 徹底解説 / pgcon21j-tutorial
soudai
175
52k
How GitHub (no longer) Works
holman
314
140k
How to Create Impact in a Changing Tech Landscape [PerfNow 2023]
tammyeverts
49
2.3k
Git: the NoSQL Database
bkeepers
PRO
427
65k
RailsConf & Balkan Ruby 2019: The Past, Present, and Future of Rails at GitHub
eileencodes
133
33k
KATA
mclloyd
29
14k
Transcript
QZUIPOͰϝλϓϩάϥϛϯά dϝλΫϥεd UFDIUBML "*νʔϜౢେथ
ϝλϓϩάϥϛϯάͱʁ w ίʔυΛੜ͢ΔΑ͏ͳϓϩάϥϛϯάͷ͜ͱ w ίʔυΛʮϝλతʯʹ࡞Δ
ͳͥϝλϓϩάϥϛϯά͢Δͷ͔ʁ w Ϋϥεੜ࣌ͷৼΔ͍ͳͲಛघͳ੍ޚ͕Ͱ͖Δ w ؆୯ʹ͔͚ΔΑ͏ʹͳΔ ͨͩ͠ɺଟ༻͢ΔͱෳࡶʹͳΓ͗͢ΔͷͰɺ w දग़͢Δ෦Ͱଟ༻͠ͳ͍ w ϥΠϒϥϦͱ͔Ͱྑͦ͞͏
QZUIPOͰϝλϓϩάϥϛϯάྫ ͍ΖΜͳύλʔϯ͕͋Δ w ϝλΫϥεΫϥεͷ࡞ΓํΛنఆ w σίϨʔλϝιουΛϥοϓ͢Δ w σΟεΫϦϓλ@@HFU@@ ͱ͔͕࣮͞Ε͍ͯΔΫϥ εɻ!DMBTTNFUIPE
!TUBUJDNFUIPEͷ࣮Ͱ༗໊ w ͳͲͳͲ σίϨʔλ σΟεΫϦϓλΛ࣮ͬͯͨ͠ TUBUJDNFUIPEͷٖࣅίʔυ
ΫϥεͷΠϯελϯε࡞ w @@OFX@@ @@JOJU@@ ͱ͍͏ॱͰಛघϝιου͕ݺΕΔ w @@OFX@@ DMT Πϯελϯε͕Ͱ͖Δલʹ࣮ߦɻΫϥεΛΠϯελϯεԽ͢Δɻ w
@@JOJU@@ TFMG Πϯελϯε͕Ͱ͖ͨޙʹ࣮ߦɻΠϯελϯεΛॳظԽ͢Δɻ w @@OFX@@ Λ࣮ߦޙΠϯελϯε͕ฦΔͱɺͦͷ@@JOJU@@ Λ࣮ߦ͢Δ༷ Ϋϥε4BNQMF$MBTT͔ΒΠϯελϯεTFMGΛ࡞ ΠϯελϯεTFMGΛॳظԽ ΠϯελϯεTFMGΛฦ͢
ϝλΫϥεͱʁ w ϝλΫϥεɿΫϥεΛ࡞ΔΫϥεͷ͜ͱ w ࢦఆ͢Δ͜ͱͰΫϥε࡞࣌ͷৼΔ͍Λ੍ޚͰ͖Δ w ΫϥεͲ͏ͬͯ࡞͞Ε͍ͯΔͷ͔ʁʁʁ 4BNQMF$MBTT͕DMTʹͳΔ 4BNQMF.FUB$MBTTͰDMTΛ࡞
ΫϥεΛ࡞ΔɿUZQF UZQF ʮΦϒδΣΫτͷܕΛΓ͍ͨͱ͖ʯʹ ͏ϝιουͱͯ͠༗໊ ͏̍ͭͷ͍ํΫϥεΛ࡞Δ w Ϋϥε໊ ܧঝ͢ΔΫϥε ଐੑΛύϥϝʔλ ʹࢦఆ
w UZQFΛΠϯελϯεԽ͢ΔͱΫϥεʹͳΔ ಉ͡ ˢ ˠ
ϝλΫϥεΛ࣮ͯ͠ΈΔ w UZQFͷػೳΛͬͯϝλΫϥεΛ࣮ w ϝλΫϥεΫϥεΛ࡞ΔΫϥε w UZQFΠϯελϯεԽ͢ΔͱΫϥεʹͳΔ w ϝλΫϥεͷ@@OFX@@
ͰUZQFΛͬͯΫϥεΛ࡞Δ UZQFΛΠϯελϯεԽͯ͠ΫϥεΛ࡞ ࡞ͨ͠ΫϥεΛฦ͢ 6TF$MBTTఆٛ࣌ʹ.FUB$MBTT͕Πϯελ ϯεԽ͞Ε@@OFX@@ Λ࣮ߦɻฦͬͯ͘Δ ΫϥεΛDMTʹ͢Δɻ ΠϯελϯεԽͤͣʹݺΔ
ϝλΫϥεΛ࣮ͯ͠ΈΔ UZQFΛΠϯελϯεԽ ͯ͠ΫϥεΛ࡞ UZQFΛܧঝ w UZQFΛܧঝͯ͠.FUB$MBTTͰಉ༷ͷॲཧΛ࣮ݱ͢Δ w UZQF ʜ
TVQFS @@OFX@@ ʜ ͰΫϥεΛ࡞Δ
ϝλΫϥεͷ༻࣮ྫMVJHJ MVJHJ w TQPUJGZ։ൃͷύΠϓϥΠϯπʔϧ w ґଘؔͷ͋ΔॲཧΛղܾ͠ͳ͕Β࣮ߦͯ͘͠ΕΔ w "*νʔϜͰϥοϓͨ͠HPLBSUͱ͍͏πʔϧΛඪ४తʹ༻ IUUQTTQFBLFSEFDLDPNOJTIJCBHPLBSUXP[VPUVUBIVB IUUQTTQFBLFSEFDLDPNWBBBBBORVJTIHPLBSUGBMTFZVOZPOHUPLFUJOJUVJUF
MVJHJHPLBSUλεΫͷಛ w ͲͷλεΫΛ࣮ߦ͢Δ͔จࣈྻͰࢦఆՄೳ w UBTLύϥϝʔλͰίʔυҎ֎͔ΒจࣈྻͰͷ੍ޚ͕Մೳ w ઃఆϑΝΠϧ͔Β w ίϚϯυϥΠϯύϥϝʔλ͔ΒɹɹͳͲ 5BTL"
5BTL# \λεΫ໊TUSλεΫΫϥεPCKFDU^ ͷؔΛอ͍࣋ͯ͠ΔͨΊ 5BTL"ʹґଘ JOUͷύϥϝʔλΛ࣋ͭ w MVJHJHPLBSUͰλεΫͱ͍͏Ϋϥε୯ҐͰॲཧΛॻ͘
λεΫͷ໊લͱ࣮ମΛͲ͏อ͍࣋ͯ͠Δ͔ʁ w λεΫΫϥεͷϝλΫϥεͰ͋Δ3FHJTUFSʹλεΫΫϥεΛอ͍࣋ͯ͠Δ w ֤5BTLએݴ࣌ʹ3FHJTUFS@SFHʹλεΫ͕Ճ͞Ε͍ͯ͘ w 3FHJTUFS@SFHΛࢀর͢Δ͜ͱͰޙͰλεΫͷҰཡ͕औΕΔ ϝλΫϥε BCD"#$.FUB UZQFΛܧঝ
Λܧঝ 3FHJTUFS@SFHʹλεΫΫϥεΛՃ DMT λεΫΫϥε Λ࡞
λεΫ໊ͱλεΫΫϥεΛͲ͏อ͍࣋ͯ͠Δ͔ʁ w ͲͷλεΫΛ࣮ߦ͢Δ͔จࣈྻͰࢦఆՄೳ w ύϥϝʔλͰίʔυҎ֎͔ΒจࣈྻͰͷ੍ޚ͕Մೳ 3FHJTUFS@SFHʹ͋ΔλεΫ͔Β֘͢ΔλεΫΛ୳࣮ͯ͠ߦ͢Δ 3FHJTUFS@SFHʹ͋ΔλεΫ͔Β֘͢ΔλεΫΛ୳ͯ͠ύϥϝʔλΛηοτ͢Δ