Mark Shannon wrote: > Benjamin Peterson wrote: >> 2012/4/24 Mark Shannon <mark at 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~
RetroSearch is an open source project built by @garambo | Open a GitHub Issue
Search and Browse the WWW like it's 1997 | Search results from DuckDuckGo
HTML:
3.2
| Encoding:
UTF-8
| Version:
0.7.4