Sección trigésimo noveno creación metaclase, crear una instancia de una clase de objeto

DEF XXX ():
     Pass 

@classmethod 
DEF yyy ():
     Pass 

la Prueba = tipo ( ' la prueba ' , (), { ' NUM1 ' :. 1, ' num2 ' : 2 }) 

# de prueba herencia, y define dos métodos 
Test2 type = ( ' Prueba2 ' , (la prueba,), { ' XXX ' : XXX, ' yyy ' : yyy}) 

Imprimir (30 * ' # ' ) 
Ayuda (Test) 
Ayuda (Prueba2) 
Imprimir (30 * ' #' ) 

Imprimir (tipo)   # esencia, es un tipo de clase, no una función 
de impresión (la prueba) 

de clase Prueba1 ():
     Pass 
' '' 
se utiliza para crear un tipo de clase dinámica, 
un primer parámetro: el nombre de la clase 
del segundo parámetro: tuplas, nombre de la clase padre entrante para 
el tercer parámetro: atributo de clase 
, cuando en realidad llamando clase para crear clases, llamando esencialmente tipo, es decir tipo es la metaclase 
' '' 
# impresión de dos clases clase padre, son el tipo 
de impresión (la prueba. __class__ )
 Imprimir (Prueba1. __class__ )

 

Supongo que te gusta

Origin www.cnblogs.com/kogmaw/p/12602593.html
Recomendado
Clasificación