exploring python methods with help and dir



~3 min read


469 words

Over the past few days I’ve been exploring different data structures and built-in methods with Python.

I looked at strings, lists basics, list comprehension, flow control, and I’m sure there will be more.

Today, however, I came across a great way to find and explore new methods using two built-in functions:

  1. dir()
  2. help()

Dir And Help - What Are They?

dir() is a function that takes an optional object as it’s argument:

Without arguments, return the list of names in the current local scope. With an argument, attempt to return a list of valid attributes for that object.

This is really handy for understanding which methods are available on the object. NB: dir() is primarily intended as a convenience as a result, “[t]he resulting list is not necessarily complete, and may be inaccurate when the object has a custom getattr().” It’s focus is on relevant, not complete information.

help(), as might be expected, invokes the built-in help system. This proves to be a convenient way to pull up the documentation for methods.

The behavior changes depending on the argument. Help has three different behaviors - no argument, a string, any other object.

No argument:

If no argument is given, the interactive help system starts on the interpreter console.


If the argument is a string, then the string is looked up as the name of a module, function, class, method, keyword, or documentation topic, and a help page is printed on the console.

Any other object:

If the argument is any other kind of object, a help page on the object is generated.

Example Time

Try the following in local python environment:

>>> my_list = [1,2,3,4]
>>> dir(my_list)
['__add__', '__class__', '__contains__', '__delattr__', '__delitem__', '__dir__', '__doc__', '__eq__', '__format__', '__ge__', '__getattribute__', '__getitem__', '__gt__', '__hash__', '__iadd__', '__imul__', '__init__', '__init_subclass__', '__iter__', '__le__', '__len__', '__lt__', '__mul__', '__ne__', '__new__', '__reduce__', '__reduce_ex__', '__repr__', '__reversed__', '__rmul__', '__setattr__', '__setitem__', '__sizeof__', '__str__', '__subclasshook__', 'append', 'clear', 'copy', 'count', 'extend', 'index', 'insert', 'pop', 'remove', 'reverse', 'sort']

I wanted to learn more about what it means to remove an element from a list, so I continued with:

>>> help(my_list.remove)

This opened up the manual page for remove, a built in of the list:

Help on built-in function remove:

remove(value, /) method of builtins.list instance
    Remove first occurrence of value.

    Raises ValueError if the value is not present.

Also, if you are worried that you’re missing methods based on the dir(my_list), you can pull up the full manual page for a list with help(my_list) - the problem is more verbose and less easily searchable.


I’m learning a lot of new stuff, very quickly, with Python! Knowing about dir() and help() are huge time savers so that I can look up the documentation quickly and keep moving!

Hi there and thanks for reading! My name's Stephen. I live in Chicago with my wife, Kate, and dog, Finn. Want more? See about and get in touch!