Classes and objects are great for creating different instances of something with the same attributes, without having to rewrite code
Recursion solves problems within problems within problems
Pytest fixtures and Code coverage increase efficiency of code testing.
A class is a template for creating objects. Defines attributes/methods that the objects will inherit. An object is an instance of a class that has all of the attributes/methods passed down to it by the class. You define classes with class MyClass then assign it an object with myobjectx = MyClass()
The concept of recursion is when a function calls itself within its own code block. You can use recursion to solve smaller probles within the main problem. A best practice to follow when using recursion is to have a ‘base case’ to prevent infinite loops.
Pytest fixtures give a way to reuse components that can be used accross multiple tests. Code coverage ensures you have tested all possible paths for your code. You can set up fixtures for your tests and their dependencies and run tests with code coverage to see how much of your code was used.