Estoy haciendo una función que aceptará una cadena Unicode o un objeto bytes (o bytearray). Quiero asegurarme de que solo se pasen esos tipos. Sé que puedo verificar si algo es una cadena haciendo isinstance(x, str)
, y sé que puedo escribir isinstance(x, bytes) or isinstance(x, bytearray)
.Superclase de bytes y bytearray?
¿Hay alguna manera más concisa de verificar esto último, es decir, hay una clase de la cual derivan tanto bytes
como bytearray
?
¿Por qué no aceptar otro tipo que soportan los requerimientos de su función, así ? ¿Por qué verificar explícitamente el tipo? –
@Jim: Bueno, no sé. Estoy tratando de implementar (como ejercicio) la compresión LZW para cualquier dato binario. ¿Qué otros tipos tendría sentido aceptar? – Javier
Por ejemplo matrices NumPy. O el tipo de extensión C que el usuario de su biblioteca acaba de escribir. Simplemente no sabes de qué tipo podría ser útil. Intenta trabajar con lo que obtienes: tu código fallará de todos modos si el tipo no cumple con los requisitos. –