From 8ea9072761f1933d93826dc98b413f0f254736e8 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Jure=20=C5=A0orn?= Date: Sat, 16 Mar 2019 21:04:36 +0100 Subject: [PATCH] New --- README.md | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/README.md b/README.md index f4d168e..bf755ca 100644 --- a/README.md +++ b/README.md @@ -1460,8 +1460,9 @@ class MyMetaClass(type): attrs['a'] = 'abcde' return type.__new__(cls, name, parents, attrs) ``` -* **New() is a class method that gets called before init(). If it returns an instance of its class, then that instance gets passed to init() as a 'self' argument, unless it is called directly as in example above.** +* **New() is a class method that gets called before init(). If it returns an instance of its class, then that instance gets passed to init() as a 'self' argument. * **It receives the same arguments as init(), except for the first one that specifies the desired class of returned instance.** +* **New() can also be called directly, usually from a new() method of a child class (`'def __new__(cls): return super().__new__(cls)'`), in which case init() is not called.** ### Metaclass Attribute **When class is created it checks if it has metaclass defined. If not, it recursively checks if any of his parents has it defined and eventually comes to type.**