> Everything my idea has to offer really is just reasonable if you don’t have 
> single inheritance only

I would like to correct myself immediately on that one: In the Pizza-example 
(from yesterday as well) it would be possible to overwrite the default price of 
the HawaiianPizza with the merging of bypassed kwargs with the ones from the 
call itself. Let us assume that the exemption of the 10$ price for all 
HawaiianPizzas would be a Family-sized pizza for 20$:

    class Pizza:
        def __init__(self, *, size, price):
            print("The price of this %s pizza is:", (size, price))

    @cooperative
    class HawaiianPizza(Pizza):
        def __init__(self, *, pineapple="chunked", size=8):
            print("This pizza has %s pineapple." % pineapple)
            super().__init__(price=10, size=size)

    class FamilyHawaiianPizza(HawaiianPizza):
        def __init__(self, *, pineapple="chunked"):
            super().__init__(price=20, size=20, pineapple=pineapple) #This 
would overwrite the price of the HawaiianPizza

But this would not be the real intention of the usage, but just a side effect 
of correctly handling a simple diamond-like hierarchy. The reason that bypassed 
kwargs should overwrite them is that they come from up the MRO and so obviously 
should have priority.

Sorry to spam you all,
Have a nice Sunday! Michael
_______________________________________________
Python-ideas mailing list
Python-ideas@python.org
https://mail.python.org/mailman/listinfo/python-ideas
Code of Conduct: http://python.org/psf/codeofconduct/

Reply via email to