[Python-Dev] PEP 416: Add a frozendict builtin type (original) (raw)
Victor Stinner victor.stinner at gmail.com
Sun Mar 4 00:11:25 CET 2012
- Previous message: [Python-Dev] Why does Mac OS X python share site-packages with apple python?
- Next message: [Python-Dev] PEP 416: Add a frozendict builtin type
- Messages sorted by: [ date ] [ thread ] [ subject ] [ author ]
Le 29/02/2012 19:21, Victor Stinner a écrit :
Rationale =========
(...) Use cases of frozendict: (...)
I updated the PEP to list use cases described in the other related mailing list thread.
Use cases:
- frozendict lookup can be done at compile time instead of runtime because the mapping is read-only. frozendict can be used instead of a preprocessor to remove conditional code at compilation, like code specific to a debug build.
- hashable frozendict can be used as a key of a mapping or as a member of set. frozendict can be used to implement a cache.
- frozendict avoids the need of a lock when the frozendict is shared by multiple threads or processes, especially hashable frozendict. It would also help to prohibe coroutines (generators + greenlets) to modify the global state.
- frozendict helps to implement read-only object proxies for security modules. For example, it would be possible to use frozendict type for builtins mapping or type.dict. This is possible because frozendict is compatible with the PyDict C API.
- frozendict avoids the need of a read-only proxy in some cases. frozendict is faster than a proxy because getting an item in a frozendict is a fast lookup whereas a proxy requires a function call.
- use a frozendict as the default value of function argument: avoid the problem of mutable default argument.
Victor
- Previous message: [Python-Dev] Why does Mac OS X python share site-packages with apple python?
- Next message: [Python-Dev] PEP 416: Add a frozendict builtin type
- Messages sorted by: [ date ] [ thread ] [ subject ] [ author ]