エントリーの編集
エントリーの編集は全ユーザーに共通の機能です。
必ずガイドラインを一読の上ご利用ください。
pythonの__setattr__をオーバーライドしてみたら楽しいかもしれない。 - Blanktar
記事へのコメント0件
- 注目コメント
- 新着コメント
このエントリーにコメントしてみましょう。
注目コメント算出アルゴリズムの一部にLINEヤフー株式会社の「建設的コメント順位付けモデルAPI」を使用しています
- バナー広告なし
- ミュート機能あり
- ダークモード搭載
関連記事
pythonの__setattr__をオーバーライドしてみたら楽しいかもしれない。 - Blanktar
昨日の__getattr__に引き続いてメタプログラミングシリーズですよ。 調子に乗るとグチャグチャになるの... 昨日の__getattr__に引き続いてメタプログラミングシリーズですよ。 調子に乗るとグチャグチャになるのでほどほどに。 getattr関数と並び立つ(?)のがsetattr関数。 その名の通り、クラスインスタンスに値をセットできます。 値じゃなくて関数もセット出来るのだけれど、バインドされないのでちょっと面倒臭い。 バインドされないと何が起こるかというと、instance.method()って呼び出し方をしてもselfが渡されないので、selfが必要ならinstance.method(instance)ってやらないとになっちゃう。 まあそんな事はともかくだ。 setattr(a, 'key', value)とすると、内部的にはa.__setattr__('key', value)みたいに処理されているらしい。 しかも、a.key = valueとした場合も__setattr__が呼ばれ