CLN: remove unused from MultiIndex
looks like mypy is against you here. not sure why. out of curiosity, why do need to use \_\_new__ for MultiIndex? > out of curiosity, why do need to use __new__ for MultiIndex?

I think it is a combination of playing nicely with `_simple_new` and precedent set by `Index.__new__` I think can just add a definition for sortorder at the class level to fix mypy > I think can just add a definition for sortorder at the class level to fix mypy

can you clarify why this is acceptable and https://github.com/pandas-dev/pandas/pull/31716#discussion_r379934750 is not.

in both cases making mypy aware of attributes. In the unacceptable case the attribute is added dynamically and therefore cannot be statically checked. Here, the attribute could be picked up by a static check if the initialazation was in \_\_init__ instead of \_\_new__

to me, it would seem that the other scenario should be more acceptable. > lgtm. i think @simonjayhawkins has a comment; those the construction methods we have _already_ use `__new__`, not likely to change as we have certain contruction requirements

yeah, happy with what is done here. the query was directed towards @WillAyd > can you clarify why this is acceptable and [#31716 (comment)](https://github.com/pandas-dev/pandas/pull/31716#discussion_r379934750) is not.

Yea as you mention the other one is factory generated and picks an arbitrary subset of methods to apply, so would either keep copying all attributes or stick with a weird in between. The inheritance here is much simpler and self-contained Thanks @jbrockmendel 