# Partial functions

## Contents

# Partial functions#

In some use-cases it might be necessary to collect a function together with some parameters together in one variable to execute it later. functoolsâ€™ `partial()`

enables to do this.

```
from functools import partial
```

For demonstrating it, we define an example function.

```
def compute_sum(a, b):
return a + b
```

We can then store the `partial`

object of that function in combination with the parameters in a variable.

```
sum_of_3_and_4 = partial(compute_sum, 3, 4)
```

This object is callable.

```
sum_of_3_and_4()
```

```
7
```

## Keeping parameters unset#

It is also possible to only partially specify parameters.

```
sum_of_3_and_b = partial(compute_sum, 3)
```

```
sum_of_3_and_b(9)
```

```
12
```

## Passing keyword arguments#

It also works with keyword arguments.

```
sum_of_a_and_4 = partial(compute_sum, b=4)
```

```
sum_of_a_and_4(5)
```

```
9
```

```
sum_of_a_and_4(a=1)
```

```
5
```

## Exercise#

Program a function that determines the Euclidean distance of two points. Afterwards, use `partial`

to pass one fixed point and a for-loop to print out distances of a list of points.

```
fixed_point = (1, 1, 1)
list_of_points = [(2,1,1), (1,1,3), (2,2,2)]
```