Everything in Python is an object.
Even values of basic primitive types (integer, string, float..) are objects. Lists are objects, tuples, dictionaries, everything.
Objects have attributes and methods that can be accessed using the dot syntax.
For example, try defining a new variable of type int
:
age = 8
age
now has access to the properties and methods defined for all int
objects.
This includes, for example, access to the real and imaginary part of that number:
print(age.real) # 8
print(age.imag) # 0
print(age.bit_length()) #4
# the bit_length() method returns the number of bits necessary to represent this number in binary notation
A variable holding a list value has access to a different set of methods:
items = [1, 2]
items.append(3)
items.pop()
The methods depend on the type of value.
The id()
global function provided by Python lets you inspect the location in memory for a particular object.
id(age) # 140170065725376
Your memory value will change, I am only showing it as an example
If you assign a different value to the variable, its address will change, because the content of the variable has been replaced with another value stored in another location in memory:
age = 8
print(id(age)) # 140535918671808
age = 9
print(id(age)) # 140535918671840
But if you modify the object using its methods, the address stays the same:
items = [1, 2]
print(id(items)) # 140093713593920
items.append(3)
print(items) # [1, 2, 3]
print(id(items)) # 140093713593920
The address only changes if you reassign a variable to another value.
Some objects are mutable, some are immutable. This depends on the object itself. If the object provides methods to change its content, then it’s mutable. Otherwise it’s immutable. Most types defined by Python are immutable. For example an int
is immutable. There are no methods to change its value. If you increment the value using
age = 8
age = age + 1
#or
age += 1
and you check with id(age)
you will find that age
points to a different memory location. The original value has not mutated, we switched to another value.
More python tutorials:
- Introduction to Python
- Installing Python 3 on macOS
- Running Python programs
- Python 2 vs Python 3
- The basics of working with Python
- Python Data Types
- Python Operators
- Python Strings
- Python Booleans
- Python Numbers
- Python, Accepting Input
- Python Control Statements
- Python Lists
- Python Tuples
- Python Sets
- Python Dictionaries
- Python Functions
- Python Objects
- Python Loops
- Python Modules
- Python Classes
- The Python Standard Library
- Debugging Python
- Python variables scope
- Python, accept arguments from command line
- Python Recursion
- Python Nested Functions
- Python Lambda Functions
- Python Closures
- Python Virtual Environments
- Use a GoPro as a remote webcam using Python
- Python, how to create a list from a string
- Python Decorators
- Python Docstrings
- Python Introspection
- Python Annotations
- Python, how to list files and folders in a directory
- Python, how to check if a number is odd or even
- Python, how to get the details of a file
- Python, how to check if a file or directory exists
- Python Exceptions