| ▲ | sevensor 2 days ago | ||||||||||||||||||||||
Concurrency is a good motivation, but this is super useful even in straight line code. There’s a huge difference between functions that might mutate a dictionary you pass in to them and functions that definitely won’t. Using Mapping is great, but it’s a shallow guarantee because you can violate it at run time. | |||||||||||||||||||||||
| ▲ | quietbritishjim a day ago | parent [-] | ||||||||||||||||||||||
> There’s a huge difference between functions that might mutate a dictionary you pass in to them and functions that definitely won’t. Maybe I misunderstood, but it sounds to me like you're hoping for the following code to work:
But this won't work (as in, type checkers will complain) because dict is not derived from frozendict (or vice-versa). You'd have to create a copy of the dict to pass it to the function. (Aside from presumably not being what you intended, you can already do that with regular dictionaries to guarantee the original won't change.) | |||||||||||||||||||||||
| |||||||||||||||||||||||