Estoy escribiendo una serie de menús de texto. Con la clase y subclase a continuación se ejecuta sin problemas. Pero estoy revisando mi encoding y me pregunto … ¿está bien que no haya usado def __init__(self) en las clases? ¿Debo haber colocado los miembros de datos en def __init__(Self): como self.images = (), self.options = […]
Tengo una clase con un miembro de datos complejos que quiero mantener “estático”. Quiero inicializarlo una vez, usando una función. Cómo Pythonic es algo como esto: def generate_data(): … do some analysis and return complex object eg list … class Coo: data_member = generate_data() … rest of class code … La función generate_data tarda mucho […]
Quiero subclass dict en python de tal manera que todos los diccionarios de la subclase sean inmutables. No entiendo cómo __hash__ afecta a la inmutabilidad, ya que, según tengo entendido, ¡solo significa la igualdad o no igualdad de los objetos! Entonces, ¿se puede usar __hash__ para implementar la inmutabilidad? Cómo ? Actualización : El objective […]
Hoy estoy viendo el código de otro, y vi esto: class A(B): # Omitted bulk of irrelevant code in the class def __init__(self, uid=None): self.uid = str(uid) @classmethod def get(cls, uid): o = cls(uid) # Also Omitted lots of code here ¿Qué hace esta función cls() aquí? Si tengo otras clases que heredan esta clase […]
Tratar con las clases (anidadas, etc.) no parece fácil en Python , ¡ sorprendentemente ! El siguiente problema apareció recientemente y me tomó varias horas (probar, buscar …) sin éxito. Leí la mayoría de los enlaces relacionados con SO, ¡pero ninguno de ellos ha señalado el problema presentado aquí! # ———————————— clase A: def __init […]
Estoy tratando de hacer algo como esto: property = ‘name’ value = Thing() class A: setattr(A, property, value) other_thing = ‘normal attribute’ def __init__(self, etc) #etc………. Pero parece que no puedo encontrar la referencia a la clase para que setattr funcione de la misma manera que simplemente asignando una variable en la definición de la […]
Sigo recibiendo el error: TypeError: unbound method get_num_students() must be called with Student instance as first argument (got nothing instead) Aquí está el código: class Student(object): num_students = 0 num_grad_2013 = 0 def __init__(self, first_name, last_name, id_num, yr_of_grad, counselor): self = self self.first_name = first_name self.last_name = last_name self.id_num = int(id_num) self.yr_of_grad = int(yr_of_grad) self.counselor […]
Posible duplicado: ¿Por qué necesita explícitamente tener el argumento “self” en un método de Python? Entiendo por qué el yo es siempre el primer argumento para los métodos de clase, esto tiene mucho sentido, pero si es así, entonces, ¿por qué pasar por la molestia de escribir si para cada definición de método? ¿Por qué […]
Hay una diferencia entre class A: … y class A(): … Acabo de darme cuenta de que algunas de mis clases se definen como las primeras y funcionan bien. ¿El paréntesis vacío hace alguna diferencia?
Me pregunto si es posible hacer un método que se comporte de manera diferente cuando se llama como un método de clase que cuando se llama como un método de instancia. Por ejemplo, como un proyecto de mejora de habilidades, estoy escribiendo una clase de Matrix (sí, ya sé que ya hay clases de matrices […]