Skip to main content

Python Best Practices

By octubre 13, 2023marzo 5th, 2024No Comments

Python is a popular and versatile programming language that can be used for various applications. However, to make the most of Python’s features and capabilities, it is important to follow some best practices for your python projects. These best practices can help you write better and maintainable code, as well as collaborate with others and deploy your projects efficiently. In this blog post, I will introduce some of them worth considering.

Python Best Practices as an abstract concept.

Virtual Environments

Virtual environments are a useful feature of Python that allow you to create isolated environments for your projects. A virtual environment is a directory that contains a specific Python interpreter and the packages that are required for your project. By using a virtual environment, you can avoid conflicts between different versions of packages, reproduce the exact environment for your project on another machine, and install packages without administrator rights. My personal go-to with virtual environments is pipenv.


Pipenv is a tool for managing Python projects and their dependencies. This tool combines the features of pip, virtualenv, and requirements.txt into one tool that can create and manage virtual environments, install and uninstall packages, and generate and check file hashes. With pipenv, you can manage .env files, which can be used to customize and override the project settings.

Read more about it here.

Folder Structure

Folder structure is an important aspect of organizing your Python projects. By creating folders and subfolders for your files, you can group your code into logical units, such as source code, tests, documentation, data, etc. This can help you improve the readability, maintainability, and reusability of your code, as well as facilitate testing and deployment.

A folder in Python is also known as a package, which is a collection of modules. A module is a file that contains Python code, such as variables, functions, classes, etc. To make a folder a package, you need to add an file to it. You can leave this file emtpy, or write some code that will be executed when the package is imported.

└── python_project/
    ├── constants/
    │   ├──
    │   ├──
    │   └──
    ├── functions/
    │   ├──
    │   └──
    └── requirements.txt

Code Documentation

One of the best python best practices is code documentation. Code documentation is the process of describing and explaining the purpose, functionality, and usage of your code in a clear and concise manner. This can help you and other developers understand, maintain, and improve your code, as well as communicate your design and implementation choices to your users and clients. Code documentation can also help you generate high-quality documentation for your projects, such as user manuals, technical specifications, tutorials, etc.


Comments are the simplest form of code documentation in Python. They are lines of text that start with a # symbol and are ignored by the Python interpreter. You can use comments to explain what a line or a block of code does, or any other information that is relevant to the code.

# This is a comment
x = 10 # Assign 10 to x

Type Hints

Type hints are optional annotations that indicate the expected type of a variable, parameter, return value, or attribute. You can exploit type hints with tools such as linters, type checkers or documentation generators to perform code completion, error detection, or documentation generation. Type hints can also help developers understand the code better and avoid bugs or inconsistencies.

To use type hints in Python, you need to use the colon (:) syntax to annotate your variables, parameters, or return values.

def add(x: int, y: int) -> int:
    return x + y


You can use special strings, called docstrings, to document modules, classes, functions and attributes. They are enclosed by triple quotes (""" or '''), and can be accessed by the __doc__ attribute or the help() function.

def add(x: int, y: int) -> int:
    """This functions takes two integer numbers and returns their sum.

        x (int): The first operand.
        y (int): The second operand.

        int: The sum of x and y.
    return x + y

Version Control

Python best practices include the use of version control systems. Version control is the process of tracking and managing changes to the source code of a software project. It allows you maintain a history of changes, revert to previous versions, resolve conflicts, and deploy the software. It also helps you collaborate with others if you have a shared project.

Some of the benefits of using version control with Python are:

  • It helps you organize and structure your code in a consistent and modular way
  • It enables you to test and debug your code in different environments and platforms
  • It facilitates code reuse and refactoring by allowing you to create and manage branches, tags, and forks
  • It supports code review and documentation, with the possibility to add comments, annotations, and docstrings to your code
  • It integrates with many online platforms and tools that provide additional features such as hosting, collaboration, issue tracking, code analysis, testing, and continuous integration

One of the most widely used version control systems for Python is Git. You can check out my previous blog here and also its follow up made by my colleague Gerard, that you can find here, if you need further information.


Leave a Reply