an object variables names that have been assigned may occasionally be referred to as bound variables when you pass objects as arguments to functionyou are only passing referencesno copying occurs thuspython is said to pass by referencewhereas some other languages support both pass by value (creating copiesand pass by reference this means that function can mutate the internals of its arguments suppose we had the following functiondef append_element(some_listelement)some_list append(elementthen given what' been saidthis should not come as surprisein [ ]data [ in [ ]append_element(data in [ ]data out[ ][ dynamic referencesstrong types in contrast with many compiled languagessuch as java and ++object references in python have no type associated with them there is no problem with the followingin [ ] in [ ]type(aout[ ]int in [ ] 'fooin [ ]type(aout[ ]str variables are names for objects within particular namespacethe type information is stored in the object itself some observers might hastily conclude that python is not "typed languagethis is not trueconsider this examplein [ ]' typeerror traceback (most recent call lastin (---- ' typeerrorcannot concatenate 'strand 'intobjects in some languagessuch as visual basicthe string ' might get implicitly converted (or castedto an integerthus yielding yet in other languagessuch as javascriptthe integer might be casted to stringyielding the concatenated string ' in this regard python is considered strongly-typed languagewhich means that every object has specific type (or class)and implicit conversions will occur only in certain obvious circumstancessuch as the following appendixpython language essentials www it-ebooks info