generador de empleo 3.24 iterador

Existen parámetros para explicar el decorador en la escritura de la lección

la auth DEF (tipo_bd): 
    DEF warpper (FUNC): 
        DEF interior (* args, ** kwargs): 
            nombre = input ( 'nombre:') .strip () 
            PWD = input ( 'pwd:') .strip () 

            IF == 'archivo' tipo_bd: 
                Imprimir ( 'verificación del archivo de registro') 
                SI (nombre, PWD) == ( 'Egon', '123'): 
                    Imprimir ( 'Inicio de sesión correcto') 
                    RES = func (* args, ** kwargs ) 
                    de retorno RES 
                la cosa: 
                    Imprimir ( 'nombre de usuario o contraseña es incorrecta') 

            elif tipo_bd == 'archivo': 
                Imprimir ( 'verificación del archivo de registro') 
                SI (nombre, PWD) == ( 'Egon', '123'):
                    imprimir (Inicio de sesión exitoso ')
                    FUNC = RES (* args, ** kwargs)
                    RES regresan 
                el else: 
                    print ( 'nombre de usuario o contraseña') 

        vuelven interna 
    de retorno warpper 


@auth ( 'Archivo') 
def index (): 
    print ( '123') 


index ()

  

Recuerde el concepto que utilizamos objeto función, por lo que es la operación de la función de un diccionario

Vamos, vamos, tenemos más práctica en la amplia y vacía el diccionario de archivo de una declaración al comienzo

A continuación, añadir decorador antes de cada función, para completar la operación automática añadido al diccionario

cmd_dict = {} 

def append2dict (TIPS): 
    def envoltura (FUNC): 
        (args *, ** kwargs) def interiores: 
            index = len (cmd_dict) + 1 
            cmd_dict [str (índice)] = (consejos, func) 
        regresan interior 
    volver envoltorio 


def auto_append (): 
    mi_func = {k:. v para k, v en variables globales () artículos () si se puede llamar (v) si k no en { 'append2dict', 'auto_append'}} 
    de func en my_func.values (): 
        func () 


@ append2dict (consejos = '登录') 
def login (): 
    print ( 'esto es login') 


@ append2dict ( '注册') 
def registro (): 
    print ( 'esto es registrar') 



auto_append ( ) 

, mientras que 1: 
    para k,v en cmd_dict.items ():
        Imprimir (. F '{K} - {V [0]}' Centro (20 es, '-')) 

    cmd = input ( 'por favor número de salida:'). Strip () 
    SI cmd No en cmd_dict: 
        Imprimir ( 're entrada ') 
        Continuar 
    FUNC = cmd_dict.get (cmd) [. 1] 
    FUNC ()

  

Escribiendo decorador de registro, poner en práctica las funciones tales como: Una vez que la función f1 a cabo, el mensaje 21/07/2017 11:12:11 carrera f1 se escribe en el archivo de registro, la ruta del archivo de registro se puede especificar. Nota: El formato de tiempo de adquisición

tiempo de importación 

def my_log (FILE_PATH): 
    def envoltura (func): 
        def interiores (* args, ** kwargs): 
            ahora = time.strftime ( '% Y-% m-% d% H:% M:% S') 
            msg = f '{ahora} {func .__ name__} run \ n' 
            con abierto (FILE_PATH, 'a', que codifica = 'utf-8') como f: 
                f.write (msg) 

            res = func (* args, * * kwargs) 
            res de retorno 
        vuelven interna 
    de retorno envoltorio 

@my_log ( 'log.txt') 
def f1 (): 
    print ( 'soy f1') 

f1 ()

  

4, sobre la base de una manera iterativa, las cadenas de valor, listas, tuplas, diccionarios, mientras iteración del bucle, establecen el objeto de archivo
my_obj = '2333' 
my_obj_i = my_obj .__ __ iter () 
while True: 
    try: 
        impresión (my_obj_i .__ próxima __ ()) 
    , excepto StopIteration: 
        ruptura

  

my_obj = [1,2,3] 
my_obj_i = my_obj .__ iter __ () 
while True: 
    try: 
        impresión (my_obj_i .__ siguiente __ ()) 
    excepto StopIteration: 
        descanso

  

my_obj = (4,5,6) 
my_obj_i = my_obj .__ __ iter () 
while True: 
    try: 
        impresión (my_obj_i .__ próxima __ ()) 
    , excepto StopIteration: 
        ruptura

  

my_obj = {1: 1, 2: 2, 3: 3} 
my_obj_i = my_obj .__ iter __ () 
while True: 
    try: 
        impresión (my_obj_i .__ siguiente __ ()) 
    excepto StopIteration: 
        descanso

  

my_obj = {1,2,3} 
my_obj_i = my_obj .__ __ iter () 
while True: 
    try: 
        impresión (my_obj_i .__ próxima __ ()) 
    , excepto StopIteration: 
        ruptura

  

con ( 'aaa.txt', modo = 'rt', que codifica = 'utf-8') abierto 
    while True: 
        try: 
            impresión (f .__ siguiente __ ()) 
        excepto StopIteration: 
            descanso

  5 iteradores personalizadas implementan la función gama

def my_range (inicio, final, paso = 1): 
    mientras inicio <final: 
        inicio rendimiento 
        de inicio + = paso 


g = my_range (1,5) 

para i en g: 
    impresión (i)

  

Supongo que te gusta

Origin www.cnblogs.com/Tornadoes-Destroy-Parking-Lots/p/12562302.html
Recomendado
Clasificación