Skip to main content

Python Decorators from the Best Site Ever

 This is a topic that I keep encountering but have struggled to fully grasp. To be fair I haven't looked too deeply into it. And now I am doing so. Python-course has a great article on the topic. They really go step by step. I've summarised what was in the article and re-written it in a way I understand it better.

A few notes about Python functions:

  • Function names are references to functions and you can assign multiple names to the same function
        e.g.  def func(x):
                    return x
                func2 = func
                ==>> Calling either func2(4) or func(4) would give the same output as they are just references to the same function 
  • Functions can be nested inside functions. I have done this a handful of times.
  • Functions can accept other functions as arguments. 
  • Functions can return functions
These features are important in understanding how a decorator works. A decorator allows you to add additional features to functions by modifying them.

Basic example of how a decorator works by python-course.

Here the function foo is wrapped in our_decorator which changes the way foo works. The above code block is essentially equivalent to the code below. It shows us what's happening "behind the scenes" when we use a @decorator. 


So essentially, we call the decorated function which is then passed to the decorator as an argument. The decorator does whatever it wants to it, and returns a modified object. I can't wait to try playing around with decorators now Though I'm not entirely certain what context I would use it in. 


Comments

Popular posts from this blog

So long and thanks for all the fish! Part 1 of 2

I have been with the Tech Academy both as a software developer bootcamp student, as well as an employee. After my bootcamp, I was hired first as the live project instructor, and then as Live Project Director. This, I believe, gives me a unique point of view. I have absolutely no regrets and would join the bootcamp again. But there are a number of things I would do differently. What I have learnt as a former student 1. DO NOT WORK PART TIME.   I worked part-time(20-30hrs) during my bootcamp. I was up at 2.30-3.00am every day to work for several hours. I took a short nap, and then I took a 1hr bus ride down to campus. Studied for 7- 9 hours. Took a 1hr bus ride back home. Lather, rinse, repeat. I also had some family obligations. My weekends and half the summer were taken up caring for my young stepdaughter. I was completely exhausted by the end of the bootcamp and I didn't know if I could do more. Learning to program is HARD. You need to be fully focused. I am fortunate because I di...

Shortcuts

 I saw one of my colleagues do something magical. He automatically fixed the alignment of student code on Visual Studio with just 1 little keyboard shortcut. Ctrl-k, followed by D. Holding down Ctrl the entire time Sometimes shortcuts really do work and make your life better!   

Inserting data from CSV into Postgres table with Python

I've been looking into how to insert data from a CSV file into a Postgres Table with code. Turns out it's pretty simple and straightforward. I personally prefer doing it in code than with a command, but I'm not sure what is more common in the industry.  So now I should be able to load data from a CSV file into a Postgres table to create a REST API. The next step is trying to figure out how to convert that data into JSON format. 🤔