2020-06-14
|~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:
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.
String:
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.
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.
(END)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!