Articles of métodos de

Actualización de la variable de clase dentro de un método de instancia

class MyClass: var1 = 1 def update(value): MyClass.var1 += value def __init__(self,value): self.value = value MyClass.update(value) a = MyClass(1) Estoy tratando de actualizar una variable de clase ( var1 ) dentro de un método ( _ init _ ) pero me da: TypeError: unbound method update() must be called with MyClass instance as first argument […]

Métodos estáticos y de instancia en Python

¿Puedo definir un método Python para que sea tanto estático como de instancia al mismo tiempo? Algo como: class C(object): @staticmethod def a(self, arg1): if self: blah blah Así que puedo llamarlo con ambos: Ca(arg1) C().a(arg1) La intención es poder ejecutar dos conjuntos de lógicas. Si se accede a él como un método de instancia, […]

Variables globales entre diferentes módulos

main.py: from module import * var=10 def func2(): print “func2:” ,var def main(): global var var=20 print “main – before”, var func2() func1() print “main – after”, var if __name__==’__main__’: main() módulo.py from main import * def func1(): global var print “func1:”, var El progtwig imprime: principal – antes: 20 func2: 20 func1: 10 principal […]

Una forma sencilla de crear un posible caso

Tengo listas de datos como a = [1,2,3,4] b = [“a”,”b”,”c”,”d”,”e”] c = [“001″,”002″,”003”] Y quiero crear una nueva lista que se haya mezclado de todos los casos posibles de a, b, c como este d = [“1a001″,”1a002″,”1a003″,…,”4e003”] ¿Hay algún módulo o método para generar d sin escribir muchos para bucle?

Listar todos los métodos en COMobject

¿Es posible? Algo en las líneas de: import win32com.client ProgID = “someProgramID” com_object = win32com.client.Dispatch(ProgID) for methods in com_object: print methods com_object.__dict__ el com_object.__dict__ , que enumera: [_oleobj_, _lazydata_, _olerepr_, _unicode_to_string_, _enum_, _username_, _mapCachedItems_, _builtMethods_] La mayoría están vacíos, excepto: _oleobj_ (PyIDispatch) _lazydata_ (PyITypeInfo) _olerepr_ (instancia de LazyDispatchItem) _username_ ( ) Pero no sé cómo […]

__getitem__, __setitem__ teclas múltiples Python

Estoy intentando crear una clase que almacena datos en un búfer local y actúa como una interfaz para una base de datos. Tengo el siguiente código: class Table(object): def __init__(self, tableName, **columnDict): self.tableName = tableName self.columns = {} self.types = {} self.columns[‘id’] = [] self.types[‘id’] = ‘INT PRIMARY KEY NOT NULL’ for name in columnDict: […]

Decorar un método

En mi aplicación Python, estoy usando eventos para comunicarme entre diferentes complementos. Ahora, en lugar de registrar los métodos a los eventos manualmente, pensé que podría usar decoradores para hacer eso por mí. Me gustaría que se vea así: @events.listento(‘event.name’) def myClassMethod(self, event): … Primero he tratado de hacerlo así: def listento(to): def listen_(func): myEventManager.listen(to, […]

Python, implementa dinámicamente una clase onthefly

Suponiendo que tengo una clase que implementa varios métodos. Queremos que un usuario elija los métodos que se ejecutarán entre los métodos existentes o puede decidir agregar cualquier método on_the_fly. del ejemplo class RemoveNoise(): pass entonces los métodos se agregan como se quiera RemoveNoise.raw = Raw() RemoveNoise.bais = Bias() etc incluso puede escribir uno nuevo […]

¿Agregando al espacio de nombres local en Python?

¿Hay alguna forma en Python para agregar al espacio de nombres de los locales llamando a una función sin asignar explícitamente las variables localmente? Algo parecido a lo siguiente, por ejemplo (que por supuesto no funciona, porque locals () devuelve una copia del espacio de nombre local) donde la statement de impresión imprimirá ‘1’. def […]

Llamando a una función de la clase en Python – diferente manera

EDIT2: Gracias a todos por su ayuda! EDIT: en la adición de @staticmethod, funciona. Sin embargo, todavía me pregunto por qué recibo un error de tipo aquí. Acabo de comenzar OOPS y soy completamente nuevo en eso. Tengo una pregunta muy básica sobre las diferentes maneras en que puedo llamar a una función de una […]