Saltar al contenido

cómo crear variable de clase dinámicamente en python

El paso a paso o código que verás en este artículo es la resolución más rápida y efectiva que encontramos a esta duda o dilema.

Solución:

Puede ejecutar el código de inserción inmediatamente después de crear una clase:

class Foo():
     ...

vars=('tx', 'ty', 'tz')  # plus plenty more
for v in vars:
    setattr(Foo, v, 0)

Además, puede almacenar dinámicamente la variable mientras se crea la clase:

class Bar:
    locals()['tx'] = 'texas'

Si por alguna razón no puede usar la respuesta de Raymond de configurarlos después de la creación de la clase, entonces quizás podría usar una metaclase:

class MetaFoo(type):
    def __new__(mcs, classname, bases, dictionary):
        for name in dictionary.get('_extra_vars', ()):
            dictionary[name] = 0
        return type.__new__(mcs, classname, bases, dictionary)

class Foo(): # For python 3.x use 'class Foo(metaclass=MetaFoo):'
    __metaclass__=MetaFoo # For Python 2.x only
    _extra_vars = 'tx ty tz'.split()

Llega tarde a la fiesta pero usa el type constructor de clases!

Foo = type("Foo", (), k: 0 for k in ("tx", "ty", "tz"))

valoraciones y reseñas

Recuerda dar recomendación a este artículo si te fue de ayuda.

¡Haz clic para puntuar esta entrada!
(Votos: 0 Promedio: 0)



Utiliza Nuestro Buscador

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *