Python classes seem to be implemented in a similar way to JS, too.
__method__s for overloading and behavior, and Lua uses metatables for the same.
I think it’s unfair to say “you can’t create classes in Lua” and then in the same thought say “but you can do so in Python/JS/other scripting languages”, and it’s repeated a lot to the point where it’s misleading. The 3 languages used in the example have OOP support, and it’s just implemented slightly differently, with two of them having a wrapper keyword for it.
The difference between interpreted classes and compiled language classes are that the latter are evaluated at compile time, and actual structures, as opposed to wrappers, are created.
Relevant to Python classes being wrappers:
Similar can be observed with JS classes and Lua implementations of similar behavior. Additionally, you can look to MoonScript’s
class keywords might do, under the hood or right in place.