Django 类方法没有装饰器
Django classmethod doesn't have a decorator
我看到几个类方法没有装饰器@classmethod。这是什么原因?
https://github.com/django/django/blob/3.0/django/db/models/base.py#L320
https://github.com/django/django/blob/3.0/django/db/models/manager.py#L20
您所谈论的项目被用作metaclasses [Python-doc]. One could say that a meta-class is the type of the type. If we for example take a look at the ModelBase
soure code [GitHub],我们看到:
class ModelBase(<b>type</b>):
"""Metaclass for all models."""
def __new__(cls, name, bases, attrs, **kwargs):
super_new = super().__new__
# …
它因此继承自type
,这是meta-classes的基本基础class。
这里的 "self" 对象是被分析、更新等的 class 本身。虽然本身不需要使用 cls
,但通常在 meta-classes 中 ordinary class 的 self
在 meta-[=] 中被命名为 cls
26=] 定义,强调我们正在操作的 class 对象本身。
我看到几个类方法没有装饰器@classmethod。这是什么原因?
https://github.com/django/django/blob/3.0/django/db/models/base.py#L320
https://github.com/django/django/blob/3.0/django/db/models/manager.py#L20
您所谈论的项目被用作metaclasses [Python-doc]. One could say that a meta-class is the type of the type. If we for example take a look at the ModelBase
soure code [GitHub],我们看到:
class ModelBase(<b>type</b>): """Metaclass for all models.""" def __new__(cls, name, bases, attrs, **kwargs): super_new = super().__new__ # …
它因此继承自type
,这是meta-classes的基本基础class。
这里的 "self" 对象是被分析、更新等的 class 本身。虽然本身不需要使用 cls
,但通常在 meta-classes 中 ordinary class 的 self
在 meta-[=] 中被命名为 cls
26=] 定义,强调我们正在操作的 class 对象本身。