Wordsmith how does it work
This commit is contained in:
parent
57f3d38e50
commit
c637f5b4f8
|
@ -51,7 +51,8 @@ Immutability
|
||||||
|
|
||||||
In order to give you immutability, ``attrs`` will attach a ``__setattr__`` method to your class that raises a :exc:`attr.exceptions.FrozenInstanceError` whenever anyone tries to set an attribute.
|
In order to give you immutability, ``attrs`` will attach a ``__setattr__`` method to your class that raises a :exc:`attr.exceptions.FrozenInstanceError` whenever anyone tries to set an attribute.
|
||||||
|
|
||||||
In order to circumvent that ourselves in ``__init__``, ``attrs`` uses (an aggressively cached) :meth:`object.__setattr__` to set your attributes. This is (still) slower than a plain assignment:
|
To circumvent that ourselves in ``__init__``, ``attrs`` uses (an aggressively cached) :meth:`object.__setattr__` to set your attributes.
|
||||||
|
This is (still) slower than a plain assignment:
|
||||||
|
|
||||||
.. code-block:: none
|
.. code-block:: none
|
||||||
|
|
||||||
|
@ -67,10 +68,10 @@ In order to circumvent that ourselves in ``__init__``, ``attrs`` uses (an aggres
|
||||||
........................................
|
........................................
|
||||||
Median +- std dev: 676 ns +- 16 ns
|
Median +- std dev: 676 ns +- 16 ns
|
||||||
|
|
||||||
So on my notebook the difference is about 300 nanoseconds (1 second is 1,000,000,000 nanoseconds).
|
So on a standard notebook the difference is about 300 nanoseconds (1 second is 1,000,000,000 nanoseconds).
|
||||||
It's certainly something you'll feel in a hot loop but shouldn't matter in normal code.
|
It's certainly something you'll feel in a hot loop but shouldn't matter in normal code.
|
||||||
Pick what's more important to you.
|
Pick what's more important to you.
|
||||||
|
|
||||||
****
|
****
|
||||||
|
|
||||||
Once constructed, frozen instances differ in no way from regular ones except that you cannot change its attributes.
|
Once constructed, frozen instances don't differ in any way from regular ones except that you cannot change its attributes.
|
||||||
|
|
Loading…
Reference in New Issue