In python, "everything is an object" - well, at least everything you name, and lots of standard system things too, are!
Some object types are
immutable. That means tha once they have been created, they cannot be modified and any code that looks like it modifies them in reallity produces a new object that's an amdened copy with the new data.
Other object types are
mutable. And in that case, they
can be amended in situ once they have been created.
One of the effects of "mutable v immutable" is that is you pass an
immutable object into a function or method and (attempt to) change it there, you will NOT change it in the main code. But if you pass a
mutable object into a function or method, you WILL change it in the main code. See
[example source].
def one (first):
first += 5
return first
f = 27
x = one(f)
print f
result - the ORIGINAL 27
def two (second):
second += [5]
return second
s = [27]
y = two(s)
print s
result - a MODIFIED list [27,5]
• Immutable obects provided by Python ... int, float, str, tuple
• Muttable objects ... most others!
(written 2015-02-24)
Associated topics are indexed as below, or enter http://melksh.am/nnnn for individual articles
Y111 - Python - More on Collections and Sequences [61] Python is a fabulous language - (2004-09-24)
[386] What is a callback? - (2005-07-22)
[633] Copying a reference, or cloning - (2006-03-05)
[899] Python - extend v append on a list - (2006-10-20)
[1304] Last elements in a Perl or Python list - (2007-08-16)
[1310] Callbacks - a more complex code sandwich - (2007-08-19)
[1869] Anonymous functions (lambdas) and map in Python - (2008-11-04)
[1873] List Comprehensions in Python - (2008-11-06)
[2718] Python - access to variables in the outer scope - (2010-04-12)
[2894] Sorting people by their names - (2010-07-29)
[2920] Sorting - naturally, or into a different order - (2010-08-14)
[2996] Copying - duplicating data, or just adding a name? Perl and Python compared - (2010-10-12)
[3150] Python dictionaries - mutable and immutable keys and values - (2011-01-29)
[3348] List slices in Python - 2 and 3 values forms, with an uplifting example - (2011-07-06)
[3439] Python for loops - applying a temporary second name to the same object - (2011-09-14)
[3797] zip in Python - (2012-07-05)
[4398] Accessing variables across subroutine boundaries - Perl, Python, Java and Tcl - (2015-01-18)
Y102 - Python - Fundamentals [328] Making programs easy for any user to start - (2005-05-29)
[748] Getting rid of variables after you have finished with them - (2006-06-06)
[956] Python security - trouble with input - (2006-11-30)
[1430] Integer v float - Python - (2007-11-12)
[1448] Question on division (Java) - Also Perl, PHP, Python ... - (2007-11-28)
[1461] Python - input v raw input - (2007-12-06)
[1878] Pascals Triangle in Python and Java - (2008-11-10)
[2368] Python - fresh examples of all the fundamentals - (2009-08-20)
[2442] Variable storage - Perl, Tcl and Python compared - (2009-10-08)
[2778] Learning to program in Python 2 ... and / or in Python 3 - (2010-05-24)
[3083] Python - fresh examples from recent courses - (2010-12-11)
[3181] Beware - a=a+b and a+=b are different - Python - (2011-02-23)
[3278] Do I need to initialise variables - programming in C, C++, Perl, PHP, Python, Ruby or Java. - (2011-05-05)
[3551] Some terms used in programming (Biased towards Python) - (2011-12-12)
[3886] Formatting output - why we need to, and first Python example - (2012-10-09)
[3917] BODMAS - the order a computer evaluates arithmetic expressions - (2012-11-09)
[4324] Learning to program - variables and constants - (2014-11-22)
[4712] A reminder of the key issues to consider in moving from Python 2 to Python 3 - (2016-10-30)
Some other Articles
Combining tests into suites, and suites into bigger suites - Python and unittestGraphing presentations in Python - huge data, numpy and matplotlibElements of an exception in Python - try, except, else, finallySeventh stay away this year - and it's still only February!Mutable v Immuatble objects in Python, and the implicationReading command line parameters in PythonA first graph with Matplotlib in PythonJson is the new marshall, pickle and cPickle / PythonLoving programming in Python - and ready to teach YOU howAdding a PHP build option, rotating an image based on camera data, and a new look at thumbnails in PHP