Articles of clase de

Clases de Python sin usar def __init __ (self)

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 = […]

Forma de Pythonic para inicializar (complejo) miembros de datos estáticos

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

¿Cómo crear un diccionario inmutable en python?

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

¿Qué hace la función cls () dentro de un método de clase?

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

Clases anidadas en Python

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

Establecer un atributo de clase con un nombre dado en python mientras se define la clase

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

El método no vinculado se debe llamar con la instancia como primer argumento – python

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

¿Por qué siempre agregar uno mismo como primer argumento a los métodos de clase?

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é […]

Sintaxis de definición de clase Python

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?

Un método de clase que se comporta de manera diferente cuando se llama como un método de instancia?

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