Software engineering and personal development

Author: Fatos Morina (Page 3 of 55)

Experienced and passionate Software Engineer with a demonstrated history of working in the full life cycle of software development and implementation from identification of user requirements, design, development, testing to maintenance of a software. Open source enthusiast. Blogger. You can hire him for different kinds of things.

Caching Made Simple in Python: A Beginner’s Guide to functools.lru_cache

Today, we are about to dive into a remarkable feature of Python that many might not be familiar with, yet it can significantly boost the efficiency of your code. Say hello to functools.lru_cache!

What’s All the Buzz About?

In computer science, caching is like having a mini-notebook to jot down complex calculations. So, the next time you encounter the same problem, you can simply peek into your notebook instead of working out the whole problem again.

functools.lru_cache is Python’s built-in way of doing this. It’s a decorator that helps you store the results of function calls, so if you call the function again with the same arguments, Python just fetches the answer from the cache instead of recalculating it.

Continue reading

How to Use Name Mangling in Python

In this article, we’re going to uncover a hidden gem of Python programming – the concept of “Name Mangling”. It may sound a bit like a fantasy novel, but it’s a practical and powerful feature that’s great to have in your coding toolkit. So, let’s dive right in!

What is Name Mangling?

“Name Mangling” is a unique Python trick involving a special use of the double underscore (__). When we use double underscores before a variable in a class, Python tweaks the variable’s name to make it harder to access unintentionally. This isn’t about creating secret variables, but rather, it’s about avoiding errors in larger programs with many moving parts.

Continue reading

How to Use Implicit Line Continuation in Python

Python’s implicit line continuation is a powerful feature that allows you to break long lines of code without the need for backslashes or explicit continuation characters.

By enclosing expressions within parentheses, brackets, or curly braces, Python recognizes the continuation and treats the code as a single logical line.

In this article, we will explore implicit line continuation and provide code examples to illustrate its usage and benefits.

Continue reading

How to Ensure Robustness and Stability in Your Code: Graceful Exception Handling

Exception handling is a vital aspect of writing reliable and robust code. Neglecting to handle exceptions appropriately can result in unhandled errors, leading to program crashes and undesirable user experiences.

By anticipating potential errors and implementing proper exception-handling techniques, you can ensure graceful error recovery and maintain the stability of your code.

In this article, we’ll explore the significance of handling exceptions effectively and provide code examples that demonstrate the importance of incorporating try-except blocks.

Continue reading

Reduce Dependency on Global Variables

Global variables, while accessible from anywhere in the code, can become a double-edged sword when used excessively.

Relying heavily on global variables can complicate code readability, hinder debugging efforts, and make code maintenance a daunting task.

In this article, we’ll explore the drawbacks of overusing global variables and highlight the advantages of using function parameters and return values to pass information between different parts of the code.

Let’s dive in!

Continue reading

Unveiling the Immutable Nature of Strings in Python

Strings are a fundamental data type in Python, forming the building blocks for text manipulation and processing. However, it’s crucial to understand that strings in Python are immutable. This means that once a string is created, it cannot be modified in-place. Attempting to directly modify a string will result in the creation of a new string object. In this article, we’ll explore the concept of string immutability, shed light on its implications, and emphasize the importance of utilizing appropriate string manipulation methods.

Continue reading

How to Handle Default Arguments Safely in Python Functions


Default arguments in Python functions provide convenient ways to assign values to parameters when no explicit arguments are provided. However, misusing mutable default arguments, such as lists or dictionaries, can introduce unexpected behavior and lead to bugs in your code. In this article, we’ll explore the potential pitfalls of misusing mutable default arguments and discuss best practices for handling defaults in a safer manner.

Continue reading
« Older posts Newer posts »

© 2024 Fatos Morina

Theme by Anders NorenUp ↑