# Source: https://docs.datadoghq.com/security/code_security/static_analysis/static_analysis_rules/swift-code-style/max-class-lines.md

# Source: https://docs.datadoghq.com/security/code_security/static_analysis/static_analysis_rules/python-code-style/max-class-lines.md

---
title: classes must be less than 900 lines
description: Datadog, the leading service for cloud-scale monitoring.
breadcrumbs: >-
  Docs > Datadog Security > Code Security > Static Code Analysis (SAST) > SAST
  Rules > classes must be less than 900 lines
---

# classes must be less than 900 lines

{% callout %}
# Important note for users on the following Datadog sites: app.ddog-gov.com

{% alert level="danger" %}
This product is not supported for your selected [Datadog site](https://docs.datadoghq.com/getting_started/site). ().
{% /alert %}

{% /callout %}

## Metadata{% #metadata %}

**ID:** `python-code-style/max-class-lines`

**Language:** Python

**Severity:** Warning

**Category:** Code Style

## Description{% #description %}

This rule stipulates that Python classes should not exceed 900 lines of code. The purpose of this rule is to maintain readability and maintainability of the code. Large classes can often become difficult to understand and maintain, leading to bugs and inefficiencies.

Adhering to this rule is crucial in promoting clean code and efficient software development. It encourages developers to practice modularity in their code, breaking down complex problems into smaller, manageable parts.

To avoid violating this rule, it is good practice to break down large classes into smaller ones, each with a single, clear responsibility. If a class is growing too large, consider whether some of its functionality could be better handled by a new class. Using inheritance or composition can also help reduce the size of individual classes. For instance, if `MyClass` is too large, you might create a new class `MySubClass` and have `MyClass` inherit from it:

```
class MySubClass:
    def foo(self):
        pass

class MyClass(MySubClass):
    def __init__(self):
        pass
```

Remember, the goal is to write code that is easy to read, understand, and maintain.

## Arguments{% #arguments %}

- `max-lines`: Maximum number of lines. Default: 100.

## Compliant Code Examples{% #compliant-code-examples %}

```python
class MyClass:
    def __init__(self):
        pass

    def foo(self):
        pass
```
  Seamless integrations. Try Datadog Code SecurityDatadog Code Security 
{% icon name="icon-external-link" /%}