New user's initial thoughts / criticisms of Python

Chris Angelico rosuav at gmail.com
Sun Nov 10 06:43:48 EST 2013


On Sun, Nov 10, 2013 at 10:39 PM, Ian Kelly <ian.g.kelly at gmail.com> wrote:
> On Sun, Nov 10, 2013 at 2:22 AM, Chris Angelico <rosuav at gmail.com> wrote:
>> JavaScript has magic around the dot and function-call operators, as I
>> mentioned earlier. Lots of other languages have some little quirk
>> somewhere that breaks this rule; some have a LOT of quirks that break
>> this rule. Does Python have any? Aside from parsing oddities like
>> attribute access on a literal integer[1], are there any cases where
>> two expressions yielding the same object are in any way different?
>
> I can think of one:
>
> class Spam:
>     def __init__(self):
>         super().__init__()  # This works.
>
> sup = super
>
> class Eggs:
>     def __init__(self):
>         sup().__init__()  # This doesn't.

Ah, yes, super() is magical. In that particular instance, I think the
magic is better than the alternative, but let's face it: Multiple
inheritance is an inherently hard problem, so a solution that has so
little magic and manages to achieve the goal is doing well. The only
thing that would have been better than this would be making it a piece
of special syntax rather than something that looks like a function
call, but it's too late to change now.

ChrisA



More information about the Python-list mailing list