Hashable object with self references OR how to create a tuple that refers to itself

Dieter Maurer dieter at handshake.de
Fri Jun 15 14:22:33 EDT 2012


"Edward C. Jones" <edcjones at comcast.net> writes:

> I am trying to create a collection of hashable objects, where each
> object contains references to
> other objects in the collection.  The references may be circular.
>
> To simplify, one can define
>     x= list()
>     x.append(x)
> which satisfies x == [x].
> Can I create a similar object for tuples which satisfies x == (x,)?

You can create a tuple in "C" and then put a reference to itself into it,
but I am quite convinced that you cannot do it in Python itself.
(Of course, you could use "cython" to generate C code with a source language
very similar to Python).

But, you do not need tuples; You could use a standard class:

>>> class C(object): pass
... 
>>> c=C()
>>> c.c=c
>>> d=dict(c=c)
>>> d
{'c': <__main__.C object at 0xb737f86c>}

--
Dieter




More information about the Python-list mailing list