>>> Is there a way to turn off (either globally or explicitly per >>> instance) the automatic interning optimization that happens for small >>> integers and strings (and perhaps other types) ? I tried several >>> workarounds but nothing worked: >> No. It's an implementation detail. >> >> What use case do you have for wanting to disable it? > > I'm working on some graph generation problem where the node identity > is significant (e.g. "if node1 is node2: # do something) but ideally I > wouldn't want to impose any constraint on what a node is (i.e. require > a base Node class). It's not a show stopper, but it would be > problematic if something broke when nodes happen to be (small) > integers or strings.
In essence, yes, there is a way for turning off the automatic interning optimization: in your API, explicitly wrap all nodes with another object, and use *that* object as the node. Regards, Martin -- http://mail.python.org/mailman/listinfo/python-list