Articles of inmutabilidad

Cómo convertir generador o iterador a la lista de forma recursiva

Quiero convertir generador o iterador a la lista de forma recursiva. Escribí un código a continuación, pero parece ingenuo y feo, y se puede dejar el caso en doctest. Q1. Ayúdame buena versión. Q2. ¿Cómo especificar objeto es inmutable o no? import itertools def isiterable(datum): return hasattr(datum, ‘__iter__’) def issubscriptable(datum): return hasattr(datum, “__getitem__”) def eagerlize(obj): […]

¿Los objetos abiertos (archivo, “wt” o “rt”) son diferentes?

Cuando tu lo hagas: file = open(“my file”,”wt”) y file = open(“my file” , “rt”) Ambos crean objetos de archivo en los que usamos métodos de archivo. ¿Pero están creando diferentes objetos de archivo? ¿Y si están creando diferentes objetos de archivo, sería justo decir que el “wt” es mutable, mientras que el “rt” es […]

¿Cómo otorgar un estilo de cuerda a mi clase?

Quiero una cadena con un atributo adicional, digamos si imprimirlo en rojo o en verde. La subclasificación (str) no funciona, ya que es inmutable. Veo el valor, pero puede ser molesto. ¿Puede ayudar la herencia múltiple? Nunca usé eso. Heredar solo el objeto y usar self.value = str significa que tengo que implementar todos los […]

Hashing un diccionario inmutable en Python

Versión corta: ¿Cuál es el mejor algoritmo de hash para un conjunto múltiple implementado como un diccionario de elementos desordenados? Estoy intentando hacer un hash de un multiset inmutable (que es una bolsa o multiset en otros idiomas: como un conjunto matemático, excepto que puede contener más de uno de cada elemento) implementado como un […]

¿Por qué la tupla no es mutable en Python?

Posible duplicado: ¿Por qué las cuerdas y tuplas de python se hacen inmutables? ¿Qué diseño de nivel inferior hace que la tupla no sea mutable en Python? ¿Por qué esta característica es útil?

Usa frozenset como un par en python

Me gustaría hacer un par de dos elementos. No me importa el orden de los elementos, así que uso frozenset . Puedo pensar en los siguientes dos métodos para repetir los elementos del frozenset. ¿No hay algún método más sofisticado? Gracias por adelantado. pair = frozenset([element1, element2]) pair2 = list(pair) elem1 = pair2[0] elem2 = […]

¿Cuál es la teoría detrás de los tipos mutables e inmutables?

Una de las cosas que admiro de Python es su distinción entre tipos mutables e inmutables. Habiendo pasado un tiempo progtwigndo en c antes de llegar a Python, me sorprendió la facilidad con la que Python elimina todas las complejidades de la falta de referencia de punteros que me vuelven loco en c. En Python, […]

Extendiendo Str incorporada de Python

Estoy tratando de subclasificar str , pero tengo algunas dificultades debido a su inmutabilidad. class DerivedClass(str): def __new__(cls, string): ob = super(DerivedClass, cls).__new__(cls, string) return ob def upper(self): #overridden, new functionality. Return ob of type DerivedClass. Great. caps = super(DerivedClass, self).upper() return DerivedClass(caps + ‘123’) derived = DerivedClass(‘a’) print derived.upper() #’A123′ print type(derived.upper()) # print […]

Beneficios no técnicos de tener un tipo de cuerda inmutable.

Me pregunto sobre los beneficios de tener el tipo de cadena inmutable desde el punto de vista de los progtwigdores. Los beneficios técnicos (en el lado del comstackdor / idioma) pueden resumirse principalmente en que es más fácil hacer optimizaciones si el tipo es inmutable. Lea aquí para una pregunta relacionada. Además, en un tipo […]

¿Son las tuplas realmente inmutables en Python?

Una de las preguntas que enfrenté hoy, que probó la inmutabilidad de las tuplas en Python: Entrevistador : ¿Son las tuplas inmutables en Python? Yo : si Entrevistador : Entonces, ¿qué se print(t1) aquí print(t1) ? t1 = (4, 5) t1 = t1 + (91, 10) print(t1) Yo : (4, 5, 91, 10) Entrevistador : […]