ziga.seilnacht at gmail.com
Thu Mar 23 10:32:46 CET 2006
David Isaac wrote:
> 1. "Without a __dict__ variable,
> instances cannot be assigned new variables not listed in the __slots__
> So this seemed an interesting restriction to impose in some instances,
> but I've noticed that this behavior is being called by some a side effect
> the reliance on which is considered unPythonic. Why?
If you want to restrict attribute asignment, you should use the
__setattr__ special method, see:
> 2. What is a simple example where use of slots has caused "subtle" problems,
> as some claim it will?
The first point is true only if all bases use __slots__:
>>> class A(object):
>>> class B(A):
... __slots__ = ('spam',)
>>> b = B()
>>> b.eggs = 1
> 3. What is a simple example of a Pythonic use of __slots__ that does NOT
> involved the creation of **many** instances.
> Alan Isaac
More information about the Python-list