[Answer](https://stackoverflow.com/q/45640690/3317808) talks about contract of a functional decorator.

Below is the code for class based decorator,

```
def hello_world(obj):
   return 'Hello World'

@hello_world
class C:
   pass

```

---

It is obvious that class based decorator accept `Class` type object as parameter. For returning an object,

What is the contract of a class based decorator?