DataCamp's data science certification

Felt cute, so took this timed data science test on DataCamp today. This just validates how far I have come since first starting to code in Python. Sometimes I need these small “external affirmations” when I feel down. Anyhow the focus of this blog is to list the questions that I got wrong, and some resources to work on it so that I (or anyone reading this) can come back to it later.
Wrappers
Python wrappers are not something that I use a lot. These weird looking
“@something” that decorates function definitions are not at all
complicated. They simply extend an existing Python function to add some
new functionality to suit your use case. Got first introduced to the
inner-workings of these things after Jeremy Howards
fast.ai book/course. There are some neat
wrappers and class decorators from the course (typedispatch for
instance) which are also available as a package called
fastcore. Wrappers were also
recommended in the book High Performance
Python
to time functions, like so:
import time
def timer(func):
def func_timer(*args, **kwargs):
start = time.time()
func(*args, **kwargs)
print(f'time to run {func.__name__}: {time.time()-start}')
return func_timer
@timer
def square(x):
"""Get the square of x"""
return x*x
Resources: GeeksforGeeks, RealPython
Attributes
It hurt when I got this wrong. The question was to write how to get the
docstring of a function. This does not need a lot of tutorials, just
remember (I did not) to do square.__doc__. Using the same function
from the above code snippet. To list all the attributes of the function
we can also do dir(square). Remember that everything in Python is an
object and objects have a lot of nice attributes and methods.
That’s it, Cheers!