poo otra multiple metodos metodo llamar importar herencia crear como clases clase atributo python class class-variables

otra - poo python 3



Cómo crear una variable de clase dinámicamente en Python (3)

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''

Necesito hacer un montón de variables de clase y me gustaría hacerlo repitiendo una lista como esa:

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

¿Es posible? No quiero hacerlos para una instancia (usando self en el __init__) sino como variables de clase.


Si por alguna razón no puede usar la respuesta de Raymond de configurarlos después de la creación de la clase, tal vez 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()