Immutable vs Mutable Objects in Python

Pubblicato il: 15 maggio 2017
sul canale di: Real Python
64,337
1.4k

https://dbader.org/python-tricks ► Improve your Python skills, one bite at a time and write Pythonic and beautiful code.

In Python, immutable vs mutable data types and objects types can cause some confusion—and weird bugs. With this video you'll see what the difference between mutable and immutable data types is in Python, and how you can use it to your advantage in your own programs.

You'll also see how to deal with a language quirk in Python that allows objects referenced by immutable types to me modified. Python's definition of "immutable" can be a bit misleading:

Basically, the promise of "immutability" on tuples is only partly true. The tuple itself cannot be modified, but objects referenced by the tuple can be. This is sometimes called "non-transitive immutability."

If the tuple has an immutable field like a string for example, then it cannot be modified. A mutable field like a list however, can be edited, even if it's embedded in the "immutable" tuple.

When the Python documentation refers to an object as being "immutable" they mean the behavior above observed. Other immutable types in Python behave the same way, e.g. namedtuples or frozensets.

If you've ever encountered the following exception and now you want to know why, this is the video for you:

TypeError: 'tuple' object does not support item assignment

* *

► Python MUGS, T-SHIRTS & MORE: https://nerdlettering.com

FREE Python Tutorials & News:
» Python Tutorials: https://dbader.org
» Python News on Twitter:   / @dbader_org  
» Weekly Tips for Pythonistas: https://dbader.org/newsletter
» Subscribe to this channel: https://dbader.org/youtube


In questa pagina del sito puoi guardare il video online Immutable vs Mutable Objects in Python della durata di ore minuti seconda in buona qualità , che l'utente ha caricato Real Python 15 maggio 2017, condividi il link con amici e conoscenti, su youtube questo video è già stato visto 64,337 volte e gli è piaciuto 1.4 mille spettatori. Buona visione!