survey: is shelve broken? should it be fixed?
Alex Martelli
aleax at aleax.it
Tue May 7 17:58:48 EDT 2002
On Tuesday 07 May 2002 21:28, Bjorn Pettersen wrote:
...
> +1 if it also prints 2 as the result of the last expression below (and
> if it remains 2 after I close and re-open the shelve):
> >>> import shelve
> >>> s = shelve.open('ciao','c')
> >>> class Foo:
>
> ... def __init__(self, x):
> ... self.x = x
> ...
>
> >>> class Bar:
>
> ... def __init__(self, y):
> ... self.y = y
> ...
>
> >>> s['bye'] = Foo(Bar(1))
> >>> s['bye'].x.y = 2
> >>> s['bye'].x.y
>
> 1
>
>
> Seems like a "real" OODBMS might be the only thing that would count as
> unsurprising in this case though?
That's what I see using my patch (corrected for a bug after I posted it to
sf):
[alex at lancelot Lib]$ python
Python 2.2.1 (#1, Apr 15 2002, 17:55:14)
[GCC 2.96 20000731 (Mandrake Linux 8.1 2.96-0.62mdk)] on linux2
Type "help", "copyright", "credits" or "license" for more information.
>>> import shelve
>>> s=shelve.open('ciao','c',smart=1)
>>> class Foo:
... def __init__(self, x): self.x=x
...
>>> class Bar:
... def __init__(self, y): self.y=y
...
>>> s['bye']=Foo(Bar(1))
>>> s['bye'].x.y=2
>>> s['bye'].x.y
2
>>> s.close()
>>> s=shelve.open('ciao','c',smart=1)
>>> s['bye'].x.y
2
>>>
Alex
More information about the Python-list
mailing list