A RetroSearch Logo

Home - News ( United States | United Kingdom | Italy | Germany ) - Football scores

Search Query:

Showing content from https://mail.python.org/pipermail/python-dev/2012-April/119004.html below:

[Python-Dev] [Python-checkins] cpython (3.2): don't use a slot wrapper from a different special method (closes #14658)

[Python-Dev] [Python-checkins] cpython (3.2): don't use a slot wrapper from a different special method (closes #14658) [Python-Dev] [Python-checkins] cpython (3.2): don't use a slot wrapper from a different special method (closes #14658)Ethan Furman ethan at stoneleaf.us
Tue Apr 24 18:33:38 CEST 2012
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~
More information about the Python-Dev mailing list

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