Articles of métodos

__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: […]

Python: ¿Son los atributos de clase equivalentes a las variables locales cuando están dentro de un método?

En Python, sé que buscar una variable de ámbito local es significativamente más rápido que buscar una variable de ámbito global. Asi que: a = 4 def function() for x in range(10000): Es mas lento que def function() a = 4 for x in range(10000): Entonces, cuando veo una definición de clase, con un atributo […]

¿Cómo evitar múltiples planos si las condiciones en python?

Considere el fragmento: def check_conditions(range_of_numbers): #method returns a list containing messages list1 = [] if condition1: list1.append(“message1”) if condition2: list1.append(“message2”) if condition3: list1.append(“message3”) try: for i in range_of_numbers: int(i) except ValueError: list1.append(“message4”) return message Quiero tener una lista en los mensajes con solo si se cumplen las condiciones. No uso varios ifs, ya que se […]

función de python * args y ** kwargs con otros argumentos de palabras clave especificados

Tengo una clase de Python con un método que debería aceptar argumentos y argumentos de palabras clave de esta manera class plot: def __init__(self, x, y): self.x = x self.y = y def set_axis(self, *args, xlabel=”x”, ylabel=”y”, **kwargs): for arg in args: for key in kwargs: al llamar: plt = plot(x, y) plt.set_axis(“test1”, “test2″, xlabel=”new_x”, […]

¿Cómo sobrecargar el método __bool__ de Python?

Posible duplicado: definiendo “boolness” de una clase en python Pensé que esto debería imprimir “Falso”, ¿por qué está imprimiendo “Verdadero”? >>> class Foo(object): … def __bool__(self): … return False … >>> f = Foo() >>> if f: … print “True” … else: … print “False” … True >>>

Muy extraño comportamiento del operador ‘es’ con métodos.

¿Por qué es False el primer resultado, si no es True ? >>> from collections import OrderedDict >>> OrderedDict.__repr__ is OrderedDict.__repr__ False >>> dict.__repr__ is dict.__repr__ True

Comprensión de listas tipo Python en Java

Ya que Java no permite pasar métodos como parámetros, ¿qué truco usas para implementar la comprensión de listas tipo Python en Java? Tengo una lista (ArrayList) de cadenas. Necesito transformar cada elemento usando una función para obtener otra lista. Tengo varias funciones que toman una cadena como entrada y devuelvo otra cadena como salida. ¿Cómo […]

Python: asignar dinámicamente los métodos de clase

Esencialmente esto es lo que quiero lograr: class Move(object): def __init__(self, Attr): if Attr: self.attr = Attr if hasattr(self, “attr”): __call__ = self.hasTheAttr else: __call__ = self.hasNoAttr def hasNoAttr(self): #no args! def hasTheAttr(func, arg1, arg2): #do things with the args __call__ = hasNoAttr Sé que eso no funciona, solo usa hasNoAttr todo el tiempo. Mi […]

Python – Pasar argumentos a diferentes métodos de Argparse

Estoy escribiendo un script de Python relativamente simple que admite un par de comandos diferentes. Los diferentes comandos admiten diferentes opciones y quiero poder pasar las opciones analizadas por argparse al método correcto para el comando especificado. La cadena de uso se ve así: usage: script.py [-h] {a, b, c} … script.py: error: too few […]

¿Debo, y cómo, agregar métodos a int en python?

(Esta es una pregunta relacionada con el aprendizaje, así que cualquier consejo sobre por qué debo hacer o no hacer algo, así como los recursos recomendados para mejorar estas cosas, es más que bienvenido). Estoy tratando de aprender sobre la POO en python, y he hecho una clase simple de “Tiempo” como esta: class Time(object): […]