4 ms·
Don't hold me on this, just bouncing a few possible solutions: - Inheritance: start with an empty dictionary and pass it to an "init" function. Inheritance is
by BoppreH 12y ago
Don't hold me on this, just bouncing a few possible solutions:
- Inheritance: start with an empty dictionary and pass it to an "init" function. Inheritance is then just calling another "init" inside it. Allows for "multiple inheritance".
- "isinstance" and "issubclass" are mostly useful for primitive types, i.e. distinguishing between a number and a string. Also, duck typing.
- Custom iteration/use as decorator/context manager: true, it's not possible. We could amend the language to check for dictionary keys or simply use the "a.b -> a['b']" syntax sugar like javascript. Perhaps a pre-processor? Pyscript?
- Static methods: that's a loss. Fortunately we have modules, so you could just make them simple functions. If this were Java we would have problems.
- We don't have encapsulation, but again pure Python doesn't either (name mangling notwithstanding).
I don't know what you mean by "class specific methods", "the different type".
- AnkhMorporkian 12y ago- Inheritance: You could, but I really don't see the point of this in the first place. - isinstance/issubclass: Duck typing is good, but the ability to check if you really need to is really good to have. When I was talking about class specific methods, I was talking about __str__, __repr__, __cmp__, __hash__, etc. By different type I meant that this will read as a dict and not a class if you check the type. Sure, you could reimplement a lot of these things if you made a subclass of dict, implemented a __call__ method, yadda yadda, but at that point you're basically recreating what type() already does.