繁体   English   中英

如何将classmethod添加到python类?

[英]How to add classmethod to a python class?

我正在尝试为我的User类定义一个generate_username。 (django的用户)

库代码将使用它。

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类?
我应该添加一个类方法吗?

添加类方法的方式与猴子实例化方法相同,但是必须将类方法装饰器应用于该classmethod

class Test(object):
    pass

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

Test.cf = classfunc

用法:

>>> Test.cf(33)
<class '__main__.Test'> 33

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM