Semantic newlines.

This commit is contained in:
Tin Tvrtkovic 2016-03-29 20:34:03 +02:00
parent cfc42ef222
commit 7818400ce7
1 changed files with 26 additions and 20 deletions

View File

@ -380,13 +380,14 @@ Converters are run *before* validators, so you can use validators to check the f
Slots
-----
By default, instances of classes have a dictionary for attribute storage. This
wastes space for objects having very few instance variables. The space
consumption can become acute when creating large numbers of instances.
By default, instances of classes have a dictionary for attribute storage.
This wastes space for objects having very few instance variables.
The space consumption can become acute
when creating large numbers of instances.
Normal Python classes can avoid using a separate dictionary for each instance of
a class by defining ``__slots__``. ``attrs`` classes should just use
``slots=True``.
Normal Python classes can avoid using a separate dictionary
for each instance of a class by defining ``__slots__``.
``attrs`` classes should just use ``slots=True``.
.. doctest::
@ -399,18 +400,20 @@ a class by defining ``__slots__``. ``attrs`` classes should just use
.. note::
``attrs`` slot classes can inherit from other classes just like non-slot
classes, but some of the benefits of slot classes are lost if you do that.
If you must inherit from other classes, try to inherit only from slot
classes.
``attrs`` slot classes can inherit from other classes
just like non-slot classes,
but some of the benefits of slot classes are lost if you do that.
If you must inherit from other classes,
try to inherit only from other slot classes.
Slot classes are a little different than ordinary, dictionary-backed classes:
* assigning to a non-existent attribute of an instance will result in an
``AttributeError`` being raised. Depending on your needs, this might actually
be a good thing since it will let you catch typos early. This is not the case
if your class inherits from any non-slot classes.
* assigning to a non-existent attribute of an instance
will result in an ``AttributeError`` being raised.
Depending on your needs, this might actually be a good thing
since it will let you catch typos early.
This is not the case if your class inherits from any non-slot classes.
.. doctest::
@ -425,8 +428,9 @@ Slot classes are a little different than ordinary, dictionary-backed classes:
...
AttributeError: 'Coordinates' object has no attribute 'z'
* slot classes cannot share attribute names with their instances, while non-slot
classes can. The following behaves differently if slot classes are used:
* slot classes cannot share attribute names with their instances,
while non-slot classes can.
The following behaves differently if slot classes are used:
.. doctest::
@ -441,10 +445,12 @@ Slot classes are a little different than ordinary, dictionary-backed classes:
>>> C.x
<member 'x' of 'C' objects>
* Since non-slot classes cannot be turned into slot classes after they have been
created, ``attr.s(.., slots=True)`` will actually replace the class it is
applied to with a copy. In almost all cases this isn't a problem, but we
mention it for the sake of completeness.
* since non-slot classes cannot be turned into slot classes
after they have been created,
``attr.s(.., slots=True)`` will actually replace the class
it is applied to with a copy.
In almost all cases this isn't a problem,
but we mention it for the sake of completeness.
Other Goodies