Iterar a través de una secuencia de operadores.

¿Es posible / hay una manera de iterar a través de una secuencia de operadores como en el siguiente ejemplo?

a, b = 5, 7 for op in (+, -, *, /): print(a, str(op), b, a op b) 

Un posible caso de uso es la prueba de la implementación de varios operadores en algún tipo de datos abstractos donde estos operadores están sobrecargados.

Puede utilizar el módulo operador.

 for op in [('+', operator.add), ('-', operator.sub), ('*', operator.mul), ('/', operator.div)]: print("{} {} {} = {}".format(a, op[0], b, op[1](a, b))) 

Puedes crear tus propias operaciones, luego iterarlas.

 def add(a, b): return a + b def sub(a, b): return a - b def mult(a, b): return a * b def div(a, b): return a / b a, b = 5, 7 operations = {'+': add,'-': sub, '*':mult, '/': div} for op in operations: print(a, op, b, operations[op](a, b)) 

Prueba esto:

 a,b=5,7 for op in ['+','-','*','/']: exec 'print a' + op + 'b' 

¡Espero que esto ayude!