Python Objects - or what’s with the periods everywhere?

Most things in Python are objects. But what is an object?

Every constant, variable, or function in Python is actually a object with a type and associated attributes and methods. An attribute a property of the object that you get or set by giving the <object_name> + dot + <attribute_name>, for example img.shape. A method is a function that the object provides, for example img.argmax(axis=0) or img.min().

Use tab completion in IPython to inspect objects and start to understand attributes and methods. To start off create a list of 4 numbers:

a = [3, 1, 2, 1]
a.<TAB>

This will show the available attributes and methods for the Python list a. Using <TAB>-completion and help is a very efficient way to learn and later remember object methods!

In [17]: a.<TAB>
a.append   a.extend   a.insert   a.remove   a.sort
a.count    a.index    a.pop      a.reverse

Here you see useful looking functions like append or sort which you can get help for and use:

a.sort
a.sort?
a.sort()
a

You can tell the difference between an attribute and a callable method with the callable function:

callable(a.sort)
[x for x in dir(a) if callable(getattr(a, x)) and not x.startswith('__')]

Mention classes and objects as class instances?