Mark Shannon wrote:
Benjamin Peterson wrote:
2012/4/24 Mark Shannon <m...@hotpy.org>:
I'm not happy with this fix.

It's not perfect, but it's an improvement.

Admittedly code like:

class S(str):
  __getattr__ = str.__add__
s = S('a')
print(S.b)

My typo, should be:
print(s.b)
(Instance not class)

is a little weird.
But I think it should work (ie print 'ab') properly.

I can easily believe I'm missing something, but here are the results with the patch in place:

{'x': 42} 42
{'x': 42} 42
ab

and here's the code:

class Foo1(dict):
    def __getattr__(self, key): return self[key]
    def __setattr__(self, key, value): self[key] = value

class Foo2(dict):
    __getattr__ = dict.__getitem__
    __setattr__ = dict.__setitem__

o1 = Foo1()
o1.x = 42
print(o1, o1.x)

o2 = Foo2()
o2.x = 42
print(o2, o2.x)

class S(str):
   __getattr__ = str.__add__
s = S('a')
print(s.b)

~Ethan~
_______________________________________________
Python-Dev mailing list
Python-Dev@python.org
http://mail.python.org/mailman/listinfo/python-dev
Unsubscribe: 
http://mail.python.org/mailman/options/python-dev/archive%40mail-archive.com

Reply via email to