0

User クラスの generate_username を定義しようとしています。(ジャンゴのユーザー)

ライブラリコードはそれを利用します..

def generate_username(self, user_class):
    """ Generate a new username for a user
    """
    m = getattr(user_class, 'generate_username', None)
    if m:
        return m()

generate_username関数を定義して User クラスに追加するにはどうすればよいですか? クラスメソッド
を追加することになっていますよね?

4

1 に答える 1

0

インスタンスメソッドをモンキーパッチするのと同じ方法でクラスメソッドを追加しますが、classmethodデコレータを適用する必要があります。

class Test(object):
    pass

@classmethod
def classfunc(cls, attr):
    print(cls, attr)

Test.cf = classfunc

使用法:

>>> Test.cf(33)
<class '__main__.Test'> 33
于 2013-08-22T11:09:52.770 に答える