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.
Tentative syntax for this could be ({} marks the sub-condition and
\number refers back to it):
########################## Code ##########################
if {(color == BLUE and count == 20)} or {(color == RED and count % 5 == 0)}:
rotate_the_wheel()
if(\1): # First marked condition
set_signal()
if(\2): # Second marked condition
unset_signal()
proc_post_rotate()
And like sub-expressions, the nesting of marked sub-condions should
also be possible:
########################## Code ##########################
if {{(color == BLUE and count == 20)} and {value == 20}} or {(color ==
RED and count % 5 == 0)}:
if(\1):# Refers to the entire subcondition {{(color == BLUE and
count == 20)} and {value = 20}}
proc1()
if(\2):# Refers to sub-subcondition {value == 20}
This will not only avoid the repetition of sub-conditions, but make
code readable since something like \1 will give an immediate
indication of a sub-condition that's defined earlier.
Please let me know something similar is already implemented.
Even otherwise, all your thoughts, inputs and criticism are welcome.
Thanks and best regards
Shrinivas Kulkarni
--
https://mail.python.org/mailman/listinfo/python-list