diff options
Diffstat (limited to 'tests/basics/object_new.py')
-rw-r--r-- | tests/basics/object_new.py | 20 |
1 files changed, 20 insertions, 0 deletions
diff --git a/tests/basics/object_new.py b/tests/basics/object_new.py new file mode 100644 index 0000000000..6131ed337e --- /dev/null +++ b/tests/basics/object_new.py @@ -0,0 +1,20 @@ +# object.__new__(cls) is the only way in Python to allocate empty +# (non-initialized) instance of class. +# See e.g. http://infohost.nmt.edu/tcc/help/pubs/python/web/new-new-method.html +# TODO: Find reference in CPython docs + +class Foo: + + def __init__(self): + print("in __init__") + self.attr = "something" + + +o = object.__new__(Foo) +#print(o) +print(hasattr(o, "attr")) +print(isinstance(o, Foo)) +o.__init__() +#print(dir(o)) +print(hasattr(o, "attr")) +print(o.attr) |