タグ

2016年11月17日のブックマーク (2件)

  • ravco.jp

  • インスタンスに動的にメソッドを追加する - PYTHONIC BOOM BOOM HEAD

    追記: 記事を公開してからおんなじような記事あったりするかなと思ってググったら2年前にIanさんがほとんど同じ内容書いてた。 Pythonでメソッドをクラスまたはインスタンスに動的に追加する - Ian Lewis しかも僕その記事はてブしてたよ… Interactive Shell で色々試してる時なんかにインスタンスにメソッドを追加したくなる時がある。 >>> class Person(object): ... def __init__(self, name): ... self._name = name ... >>> alice = Person("Alice") >>> bob = Person("Bob") こんなクラスがあって、幾つかインスタンスを作っているとする。で、self._nameを取得するメソッドが欲しくなったとしよう。 >>> def get_name(self)

    インスタンスに動的にメソッドを追加する - PYTHONIC BOOM BOOM HEAD
    U1and0
    U1and0 2016/11/17
    >>> Person.get_name = get_name というようにクラスの方に追加してやる。ただ、これだと当然ながら全てのインスタンスに影響が出る >>> alice.get_name() 'Alice' >>> bob.get_name() 'Bob' 影響が出るというか、実はaliceもbobもget_nameなんて持って