Articles of sobrecarga de

Primitivas de sobrecarga de Python

Estoy tratando de sobrecargar algunos métodos de la cadena incorporada. Sé que no hay un caso de uso realmente legítimo para esto, pero el comportamiento todavía me molesta, así que me gustaría obtener una explicación de lo que está sucediendo aquí: Usando Python2, y el módulo de fruta forbiddenfruit . >>> from forbiddenfruit import curse […]

Sobrecarga (o alternativas) en el diseño de la API de Python

Tengo una gran biblioteca de progtwigs que actualmente tiene un enlace .NET, y estoy pensando en escribir un enlace de Python. La API existente hace un uso extensivo de la sobrecarga basada en firmas. Entonces, tengo una gran colección de funciones estáticas como: Circle(p1, p2, p3) — Creates a circle through three points Circle(p, r) […]

¿Cuál sería el equivalente de python de la sobrecarga de tipo?

Que yo sepa, hay dos tipos de sobrecarga, uno basado en el número de argumentos y uno basado en los tipos de argumento Si bien aquí se ha cubierto la sobrecarga basada en la cantidad de argumentos, parece que no puedo encontrar pautas sobre la sobrecarga de funciones por tipo de argumento. Entonces, dado que […]

Python: ¿Las subclases pueden sobrecargar los métodos heredados?

Estoy haciendo una aplicación de carrito de compras en Google App Engine. Tengo muchas clases que se derivan de un controlador de base: class BaseHandler(webapp.RequestHandler): def get(self, CSIN=None): self.body(CSIN) ¿Significa esto que el método body() de cada clase descendiente necesita tener el mismo argumento? Esto es engorroso. Solo un descendiente usa ese argumento. ¿Y qué […]

método de sobrecarga en python

Necesito llamar primero al método no parametrizado, pero también parametrizado first , pero está dando un error. >>> class A: … def first(self): … print ‘first method’ … def first(self,f): … print ‘first met’,f … >>> a=A() >>> a.first() Traceback (most recent call last): File “”, line 1, in TypeError: first() takes exactly 2 arguments […]

¿Cómo sobrecargar adecuadamente el método __add__?

Estoy obligado a escribir una clase sobre fechas. Se supone que debo sobrecargar el operador + para permitir que los días se agreguen a las fechas. Para explicar cómo funciona: Un objeto Date se representa como (2016,4,15) en el formato año, mes, fecha. La sum de un entero 10 a este debería producir (2016,4,25). La […]

Decorador para la sobrecarga en Python.

Sé que no es Pythonic escribir funciones que se preocupan por el tipo de argumentos, pero hay casos en los que es simplemente imposible ignorar los tipos porque se manejan de manera diferente. Tener un montón de controles de isinstance en tu función es simplemente feo; ¿Existe algún decorador de funciones disponible que permita la […]

¿Cómo llamar a una propiedad de la clase base si esta propiedad se sobrescribe en la clase derivada?

Estoy cambiando algunas de mis clases de un uso extensivo de captadores y definidores a un uso más pirónico de las propiedades. Pero ahora estoy atascado porque algunos de mis captadores o definidores anteriores llamarían al método correspondiente de la clase base y luego realizarían otra cosa. Pero, ¿cómo se puede lograr esto con propiedades? […]

Sobrecarga de funciones en Python: faltante

Como esto dice: http://web.archive.org/web/20090624083829/http://mail.python.org/pipermail/python-list/2003-May/206149.html La sobrecarga de funciones está ausente en Python. En lo que a mí me parece una gran desventaja, ya que también es un lenguaje OO. Inicialmente, descubrí que no era posible diferenciar entre los tipos de argumentos, pero la naturaleza dinámica de Python lo hacía fácil (por ejemplo, la lista, las […]

¿Por qué la definición de __getitem__ en una clase lo hace iterable en python?

¿Por qué la definición de __getitem__ en una clase lo hace iterable? Por ejemplo si escribo: class b: def __getitem__(self, k): return k cb = b() for k in cb: print k Me sale la salida: 0 1 2 3 4 5 6 7 8 … Realmente esperaría ver un error devuelto de “para k […]