Similar método de la función estructural de llamadas implementado en Python

En este artículo se describe el método de llamada a la función de Python para lograr una estructura similar, el documento explica el uso de dict y lambda en combinación para lograr llamadas a funciones estructura similar, da un ejemplo sin parámetros y argumentos, un amigo en necesidad puede hacer referencia a
la pitón dict es fácil de usar, se puede personalizar el valor de la clave, y se accede mediante subíndices, por ejemplo:

>>> d = {'key1':'value1',
... 'key2':'value2',
... 'key3':'value3'}
>>> print d['key2']
value2
>>>

expresión lambda es también un material muy práctico, por ejemplo:

>>> f = lambda x : x**2
>>> print f(2)
4
>>>

Estructura similar a una combinación de ambas llamadas de función se puede implementar, fácil de usar, los siguientes ejemplos:
Ejemplo 1: sin parámetros

 #! /usr/bin/python
 
msgCtrl = "1 : pause\n2 : stop\n3 : restart\nother to quit\n"
 
ctrlMap = {
'1':    lambda : doPause(),
'2':    lambda : doStop(),
'3':    lambda : doRestart()}
 
def doPause():
        print 'do pause'
 
def doStop():
        print 'do stop'
 
def doRestart():
        print 'do restart'
 
if __name__ == '__main__':
        while True:
                print msgCtrl
                cmdCtrl = raw_input('Input : ')
                if not ctrlMap.has_key(cmdCtrl):break
                ctrlMap[cmdCtrl]()

Ejemplo dos: parámetros

#! /usr/bin/python
 
msgCtrl = "1 : +\n2 : -\n3 : *\nother to quit\n"
 
ctrlMap = {
'1':    lambda x,y : x+y,
'2':    lambda x,y : x-y,
'3':    lambda x,y : x*y}
 
 
if __name__ == '__main__':
        while True:
                print msgCtrl
                cmdCtrl = raw_input('Input : ')
                if not ctrlMap.has_key(cmdCtrl):break
                print ctrlMap[cmdCtrl](10,2),"\n"

Por último, se recomienda una muy amplia recolección de recursos de aprendizaje pitón, [haga clic para entrar] , aquí están mi colección antes de la experiencia, notas de estudio el aprendizaje, hay una posibilidad de experiencia en los negocios, y se calmó a cero sobre la base de información para combatir proyecto , podemos en la parte inferior, dejar un mensaje, no sé a presentar, estudiaremos juntos en

Publicado 34 artículos originales · ganado elogios 51 · Vistas a 40000 +

Supongo que te gusta

Origin blog.csdn.net/haoxun10/article/details/104805933
Recomendado
Clasificación