6 ms·
Wouldn't it be more explicit if there was a designated keyword that objects could use to access their own members instead of implicitly assuming that any first
by Sandman 6y ago
Wouldn't it be more explicit if there was a designated keyword that objects could use to access their own members instead of implicitly assuming that any first argument to a method is a reference to them, only called 'self' by convention?
- joshuamorton 6y ago> Wouldn't it be more explicit if there was a designated keyword that objects could use to access their own members Not really. You end up implicitly injecting some value into local namespaces instead of having a function that takes an argument. The implicitness of methods working differently than normal functions > the implicitness of classes passing a first argument to methods.
- Sandman 6y agoShould super then also be a method argument?
- joshuamorton 6y agoHonestly, I think it would have made some amount of sense to make super a method defined on the base object so that def __init__(self, x, y): self.super(x, y) would be the convention. There may be some infra issue with this (and in general, `super` has to be kind of magical no matter how you handle it). But yes, in general I can vibe with "super is too implicit".
- Joker_vD 6y agoRuby generally (I think? I haven't seen much of Ruby code) uses "@" instead of "self.", and "@@" instead of "ParticularClassName." (btw, "self.__class__" doesn't cut it), and it seems to produce no namespace pollution.