In python, the instance of a class is referred to by the keyword self. Using this keyword you can access not only all instance attributes but also the class attributes. While it’s not an issue when trying to read the class attribute using self but trying to assign/modify the class attribute will not work.
In this article, I will demonstrate this using a simple example where we use a class attribute to assign and track the serial number of shipping containers.
Working on a large project is challenging on many fronts. One of those challenges is to make sure the logs are relaying all relevant information for the project that could help with debugging issues and failures.
Chances are your project is already using Python’s industry-standard logging module for logging purposes, so we need to be able to extend the logging module to add this information.
I work with pytest to develop my test automation solutions. When I am using logging for a project that consists of hundreds of tests (both unit tests and selenium tests), I need the name of…
This article is a continuation of the article I submitted about same time last year. Can’t believe its been an year now, so I wanted to go ahead and finish the series on this topic.
I want to take a different approach this time around and try to solve a common problem that is encountered when setting up an API automation solutions on real projects. The solution to the problem as it turns out would be the exciting feature of tavern that you would also get to learn about. So let’s dive into it
When you are running your API…
New programmers are often confused about the topic of exception handling and look for best practices in adopting exception handling into their existing code but without proper knowledge of how exception handling works under the hood it can cause their programs to behave unexpectedly.
In this article I will present a simple use case where using the built-in python exception is insufficient and results in an obscure error message that I will work through and attempt to improve on starting with using the built-in exception initially and then gradually defining our own custom exception to demonstrate a somewhat realistic thinking…
Investing in the stock market is confusing for many beginners and even veterans believe it or not who don’t understand all the different strategies you can use to make money.
WallStreetBets on reddit is full of stories of investors losing all their life savings on crazy bets. You don’t have to be one of them. It’s pure gambling and has a very high probability of you losing money instead. To be fair there are clear winners too who have become millionaires overnight but surely they are a handful minority
Now there are a lot of different strategies you can use…
New programmers are often confused about the topic of exception handling and look for best practices in adopting exception handling into their existing code but without proper knowledge of how exception handling works under the hood it can cause their programs to behave unexpectedly.
In this article I will not go into details about the workings of exceptions but instead I will try to show an undesirable consequence of not specifying an exception class in your exceptional handling logic. …
Glob is an inbuilt Python module that is used to find path names in your filesystem which match a specific pattern. It takes its inspiration from the Unix shell-style of pattern matching.
Ok, we have an idea about the module now but what about the use case? Where might you be able to use this and potentially avoid using a blob of code and instead use glob’s built-in functions to achieve the same task in possibly a single line of code? Let’s take a look.
This is a very common task that can find its use in almost every Python…
While Python is a great everyday language which finds its place in every single domain whether it be Finance, Data Science, Web Development, or IT Infrastructure; its usage in large scale projects is often limited and the well known reason given is in its dynamically typed nature which can make the code unreadable and its quite hard to tell what is going on at any given place
Since in large projects the code is more often read than written….
“Indeed, the ratio of time spent reading versus writing is well over 10 to 1. We are constantly reading old code…
Class methods are great alternative constructors that can be used as factory methods to create instances of class by supporting different instantiation arguments.
Say you have a very simple Date class as shown below that can be instantiated by providing three arguments: a Year, a Month and a Day
A user would instantiate the class as following
date = Date(2020, 04, 05)
print(date)
which works just fine
> Date(2020, 04, 05)
But let’s say you want to provide users of your class alternative ways to create Date instances. For e.g. a user should be able to create a Date…
Often, when reading Python code, you’ll come across utility functions that will return None
. Although it might seem natural to return None
in some cases, it should be avoided because it can be error-prone.
Let’s say you want to write a simple library function that divides two numbers.
The function returns None
when the denominator is 0. This makes sense as the result is undefined so sending None
sounds natural. However, the user of the function can incorrectly use it as shown below.
When the numerator is 0, the function would return 0, which is expected but look…
QA Automation Engineer