From 5298893088fac7cc8b7fb22c4ef2a1fda930ae64 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E8=B0=AD=E4=B9=9D=E9=BC=8E?= <109224573@qq.com> Date: Mon, 19 Oct 2020 13:37:33 +0800 Subject: [PATCH] Update 4.md --- Article/PythonBasis/python12/4.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/Article/PythonBasis/python12/4.md b/Article/PythonBasis/python12/4.md index 07e8422..520e03e 100644 --- a/Article/PythonBasis/python12/4.md +++ b/Article/PythonBasis/python12/4.md @@ -50,7 +50,7 @@ class Foo(Bar): 它的判断流程是怎样的呢? -首先判断 Foo 中是否有 `__metaclass__` 这个属性?如果有,Python 会在内存中通过 `__metaclass__` 创建一个名字为 Foo 的类对象(注意,这里是类对象)。如果 Python 没有找到`__metaclass__` ,它会继续在 Bar(父类)中寻找`__metaclass__` 属性,并尝试做和前面同样的操作。如果 Python在任何父类中都找不到 `__metaclass__` ,它就会在模块层次中去寻找 `__metaclass__` ,并尝试做同样的操作。如果还是找不到` ` `__metaclass__` ,Python 就会用内置的 type 来创建这个类对象。 +首先判断 Foo 中是否有 `__metaclass__` 这个属性?如果有,Python 会在内存中通过 `__metaclass__` 创建一个名字为 Foo 的类对象(注意,这里是类对象)。如果 Python 没有找到`__metaclass__` ,它会继续在 Bar(父类)中寻找`__metaclass__` 属性,并尝试做和前面同样的操作。如果 Python在任何父类中都找不到 `__metaclass__` ,它就会在模块层次中去寻找 `__metaclass__` ,并尝试做同样的操作。如果还是找不到 `__metaclass__` ,Python 就会用内置的 type 来创建这个类对象。 其实 `__metaclass__` 就是定义了 class 的行为。类似于 class 定义了 instance 的行为,metaclass 则定义了 class 的行为。可以说,class 是 metaclass 的 instance。