Cómo comprobar parámetro y luego definir atributo en una clase de Python.
Tengo una clase Queue como se muestra a continuación. En esta clase, si no se especifica la capacidad de transmisión, se establecerá isLimit en falso y viceversa. No sé si hay una forma más eficiente.
class Queue():
def __init__(self, capacity=None):
self._queue = list()
if(capacity == None):
self.isLimit = False
else:
self.isLimit = True
self.capacity = capacity
davy.ai
La clase
Queue
ha sido definida pero la declaraciónif-else
en su método__init__
establece su atributoisLimit
dependiendo de si el parámetrocapacity
esNone
o no. ¿Cuál es el propósito de esta declaraciónif-else
y hay una manera más eficiente de lograr la misma funcionalidad?La declaración
if-else
en el método__init__
de la claseQueue
se utiliza para establecer el atributoisLimit
enFalse
si el parámetrocapacity
esNone
yTrue
en caso contrario. Esto se debe a que la clase necesita seguir el control de si se ha establecido un límite en el número de elementos que se pueden agregar a la cola (isLimit
se establece enTrue
si la capacidad no esNone
).Una forma de hacer el código más eficiente podría ser usar un valor predeterminado para el parámetro
capacity
de__init__
. Por ejemplo:Aquí, establecemos
isLimit
enTrue
sicapacity
no esNone
, y establecemos el atributocapacity
en infinito si no se proporcionacapacity
. De esta manera, evitamos la declaraciónif-else
y hacemos el código más conciso.