---
title: "Quick Python: Dataclasses"
date: 2020-04-08T18:59:48-04:00
draft: false
tags: ["Python"]
medium_enabled: true
---

Python 3.7 and above have a feature called dataclasses. This allows us to reduce boilerplate code by removing the need to create a whole constructor and providing a sensible `__repr__` function.

```python
from dataclasses import dataclass

@dataclass
class Person:
    name: str
    age: int = 0
```

Usage:

```python
p = Person("Bob", 30)
print(p)
```

```
Person(name='Bob', age=20)
```

To make an attribute have a default value, add it after the type declaration like I have with `age`.

