【问题标题】:Django classmethod doesn't have a decoratorDjango 类方法没有装饰器
【发布时间】:2020-04-03 19:29:53
【问题描述】:

【问题讨论】:

  • 它是一个元类,因此它处理的对象是一个类。

标签: python django class-method


【解决方案1】:

您谈论的项目被用作metaclasses [Python-doc]。可以说元类是类型的类型。例如,如果我们看一下ModelBase soure code [GitHub],我们会看到:

class ModelBase(type):
    """Metaclass for all models."""
    def __new__(cls, name, bases, attrs, **kwargs):
        super_new = super().__new__

    # …

因此它继承自type,这是元类的基本基类。

这里的“self”对象因此是被分析、更新等的类本身。虽然一个人本身不需要使用cls,但在元类中很常见的是@987654327 普通类的@,在元类定义中被命名为cls,以强调我们正在操作的类对象本身这一事实。

【讨论】:

    猜你喜欢
    • 2014-01-14
    • 2020-01-11
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2015-03-17
    • 2012-09-11
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多