Articles of python datamodel

Bucle sobre métodos de objetos Python / IronPython

¿Cuál es la forma correcta de recorrer los métodos de un objeto Python y llamarlos? Dado el objeto: class SomeTest(): def something1(self): print “something 1” def something2(self): print “something 2”

¿Cómo verificas si un método de python está vinculado o no?

Dada una referencia a un método, ¿hay una manera de verificar si el método está vinculado a un objeto o no? ¿También puedes acceder a la instancia a la que está vinculado?

¿Cuál es la relación entre el modelo de datos de Python y las funciones integradas?

Mientras leo las respuestas de Python en Stack Overflow, sigo viendo a algunas personas que les dicen a los usuarios que usen los métodos o atributos especiales del modelo de datos directamente. Luego veo consejos contradictorios (a veces de mí mismo) que dicen que no se debe hacer eso, y en lugar de usar las […]

Evitar la creación de nuevos atributos fuera de __init__

Quiero poder crear una clase (en Python) que una vez inicializada con __init__ , no acepta nuevos atributos, pero acepta modificaciones de los atributos existentes. Hay varias formas de piratear que puedo ver para hacer esto, por ejemplo, tener un método __setattr__ como def __setattr__(self, attribute, value): if not attribute in self.__dict__: print “Cannot set […]

¿Cómo realizo la introspección en un objeto en Python 2.x?

Estoy usando Python 2.x y tengo un objeto que estoy invocando desde el éter; La documentación al respecto no es particularmente clara. Me gustaría poder obtener una lista de propiedades para ese objeto y el tipo de cada propiedad. Del mismo modo, también me gustaría obtener una lista de métodos para ese objeto, además de […]

¿Cómo determinaría dónde se define cada propiedad y método de una clase de Python?

Dada una instancia de alguna clase en Python, sería útil poder determinar qué línea de código fuente definió cada método y propiedad (por ejemplo, para implementar 1 ). Por ejemplo, dado un módulo ab.py class A(object): z = 1 q = 2 def y(self): pass def x(self): pass class B(A): q = 4 def x(self): […]

Python, ¿debería implementar el operador __ne __ () basado en __eq__?

Tengo una clase en la que quiero anular el __eq__() . Parece tener sentido que yo también deba anular el __ne__() , pero ¿tiene sentido implementar __ne__ basado en __eq__ como tal? class A: def __eq__(self, other): return self.value == other.value def __ne__(self, other): return not self.__eq__(other) ¿O hay algo que me falta en la […]

Operador multiplicado aplicado a la lista (estructura de datos)

Estoy leyendo Cómo pensar como un científico informático que es un texto introductorio para “Progtwigción Python“. Quiero aclarar el comportamiento del operador multiplicar ( * ) cuando se aplica a las listas. Considere la función make_matrix def make_matrix(rows, columns): “”” >>> make_matrix(4, 2) [[0, 0], [0, 0], [0, 0], [0, 0]] >>> m = make_matrix(4, […]

¿Todo es mayor que ninguno?

¿Existe un tipo de datos incorporado en Python, además de None , para el cual: >>> not foo > None True donde foo es un valor de ese tipo? ¿Qué hay de Python 3?

Obtenga el nombre de clase completo de un objeto en Python

Para fines de registro, quiero recuperar el nombre de clase completo de un objeto de Python. (Con la calificación completa, me refiero al nombre de la clase, incluido el paquete y el nombre del módulo). Sé sobre x.__class__.__name__ , pero ¿hay un método simple para obtener el paquete y el módulo?