[Python-ideas] Re: Possible Addition to Python Language: Marked Sub-condition

David Mertz mertz at gnosis.cx
Mon Mar 9 10:16:12 EDT 2020


This isn't a terrible use of the walrus operator either.

if blue_20 := (color==BLUE and count==20) or red_5 := (color==RED and
count%5==0)
    rotate_the_wheel() # Common to the two sub-conditions
    if blue_20: # First sub-condition
        set_signal()
    if red_5: # Second sub-condition
        clear_signal()
    proc_post_rotate() # Common to the two sub-conditions



On Sun, Mar 8, 2020 at 12:02 PM Paul Moore <p.f.moore at gmail.com> wrote:

> On Sun, 8 Mar 2020 at 15:02, Shrinivas Kulkarni <shrinivk at gmail.com>
> wrote:
> >
> > Hello Everyone
> >
> > While writing python code, I frequently come across the need to do
> > certain tasks based on combined conditions.
> >
> > Much of the task for all the sub-conditions are common but some are
> > specific to one or more of these sub-conditions.
> >
> > A simplified example:
> >
> > ########################## Code ##########################
> > if (color == BLUE and count == 20) or (color == RED and count % 5 == 0):
> >     rotate_the_wheel() # Common to the two sub-conditions
> >     if(color == BLUE and count == 20): # First sub-condition
> >         set_signal()
> >     if(color == RED and count % 5 == 0): # Second sub-condition
> >         clear_signal()
> >     proc_post_rotate() # Common to the two sub-conditions
> >
> > I am not sure if there is a better way to do this. If not, maybe there
> > can be an extension to the language, which would allow marking a
> > sub-condition just like we mark a sub-expression in a regular
> > expression.
>
> I would have thought that simply naming the sub-conditions would be
> sufficient.
>
> blue_20 = (color == BLUE and count == 20)
> red_5 = (color == RED and count % 5 == 0)
> if blue_20 or red_5:
>     rotate_the_wheel() # Common to the two sub-conditions
>     if blue_20: # First sub-condition
>         set_signal()
>     if red_5: # Second sub-condition
>         clear_signal()
>     proc_post_rotate() # Common to the two sub-conditions
>
> I don't know how experienced you are with Python programming, but if
> you had framed your question as "how do I modify this code to avoid
> repeating the conditions?" you would likely have been given this
> advice on the python-list mailinglist, or other similar Python
> programming help resources.
>
> Starting with a proposed language change before you've explored the
> existing options isn't likely to be the best approach (and would
> likely have meant you could resolve your issue without needing to
> bring it to python-ideas at all).
>
> Paul
> _______________________________________________
> Python-ideas mailing list -- python-ideas at python.org
> To unsubscribe send an email to python-ideas-leave at python.org
> https://mail.python.org/mailman3/lists/python-ideas.python.org/
> Message archived at
> https://mail.python.org/archives/list/python-ideas@python.org/message/3M2BOILT7FBGGJBFECZZKDSTHRKDANCA/
> Code of Conduct: http://python.org/psf/codeofconduct/
>


-- 
Keeping medicines from the bloodstreams of the sick; food
from the bellies of the hungry; books from the hands of the
uneducated; technology from the underdeveloped; and putting
advocates of freedom in prisons.  Intellectual property is
to the 21st century what the slave trade was to the 16th.


More information about the Python-list mailing list