---
id: 68af272f60e009597dd861e1
title: Step 1
challengeType: 20
dashedName: step-1
---

# --description--

In this workshop, you are going to create a media catalogue. Start by defining a class named `Movie`.

Give your class an `__init__` method with the following parameters: `self`, `title`, `year`, `director`, and `duration`. Inside the `__init__` method, assign `title`, `year`, `director`, and `duration` parameters to instance attributes with the same name.

# --hints--

You should create a class named `Movie`.

```js
({
  test: () => runPython(`assert _Node(_code).has_class("Movie")`)
})
```

Your `Movie` class should have an `__init__` method.

```js
({
  test: () => runPython(`assert _Node(_code).find_class("Movie").has_function("__init__")`)
})
```

Your `__init__` method should have the following parameters: `self`, `title`, `year`, `director`, and `duration`.

```js
({
  test: () => runPython(`assert _Node(_code).find_class("Movie").find_function("__init__").has_args("self, title, year, director, duration")`)
})
```

You should assign `title` to `self.title` inside your `__init__` method.

```js
({
  test: () => runPython(`assert _Node(_code).find_class("Movie").find_function("__init__").has_stmt("self.title = title")`)
})
```

You should assign `year` to `self.year` inside your `__init__` method.

```js
({
  test: () => runPython(`assert _Node(_code).find_class("Movie").find_function("__init__").has_stmt("self.year = year")`)
})
```

You should assign `director` to `self.director` inside your `__init__` method.

```js
({
  test: () => runPython(`assert _Node(_code).find_class("Movie").find_function("__init__").has_stmt("self.director = director")`)
})
```

You should assign `duration` to `self.duration` inside your `__init__` method.

```js
({
  test: () => runPython(`assert _Node(_code).find_class("Movie").find_function("__init__").has_stmt("self.duration = duration")`)
})
```

# --seed--

## --seed-contents--

```py
--fcc-editable-region--

--fcc-editable-region--
```
