Articles of referencia de

¿Cómo funciona la referencia de Python?

Estoy confundido con las referencias de Python. Considere el siguiente ejemplo: Mi tarea: editar cada elemento de la lista. d = { ‘m’: [1,2,3] } m = d[‘m’] m = m[1:] # m changes its reference to the new sliced list, edits m but not d (I wanted to change d) Similar: d = { […]

¿Por qué Python maneja ‘1 es 1 ** 2’ de manera diferente a ‘1000 es 10 ** 3’?

Inspirado por esta pregunta sobre el almacenamiento en caché de enteros y cadenas pequeños, descubrí el siguiente comportamiento que no entiendo. >>> 1000 is 10**3 False Pensé que entendía este comportamiento: 1000 es demasiado grande para ser almacenado en caché. 1000 y 10 ** 3 puntos a 2 objetos diferentes. Pero me equivoqué: >>> 1000 […]

Rutas de archivo relativas en paquetes de Python

¿Cómo puedo hacer referencia a un archivo en relación con el directorio de un paquete? Mi estructura de directorio es: / foo paquete1 / recursos / __init__.py paquete2 / recursos / __init__.py script.py script.py importa paquetes package1 y package2 . Aunque los paquetes pueden ser importados por cualquier otro script en el sistema. ¿Cómo debo […]

Python: Asignar “a través” de un iterador

Tengo un iterador sobre una secuencia mutable, por ejemplo foo = [1,2,3,4,5] for bar in foo: ¿Hay una manera de escribir a los elementos en foo usando la referencia que está contenida en el iterador? La tarea ingenua: bar = 42 No funciona, por supuesto. ¿Es posible usar la referencia “detrás de la cortina” al […]

¿Por qué ha decidido Python en contra de las referencias constantes?

Nota: no estoy hablando de prevenir la reconexión de una variable. Estoy hablando de evitar la modificación de la memoria a la que se refiere la variable, y de cualquier memoria a la que se pueda acceder desde allí siguiendo los contenedores nesteds. Tengo una gran estructura de datos, y quiero exponerla a otros módulos, […]

Python equivalente de punteros

En python todo funciona por referencia: >>> a = 1 >>> d = {‘a’:a} >>> d[‘a’] 1 >>> a = 2 >>> d[‘a’] 1 Quiero algo como esto >>> a = 1 >>> d = {‘a’:magical pointer to a} >>> d[‘a’] 1 >>> a = 2 >>> d[‘a’] 2 ¿Qué sustituirías por un puntero mágico […]

Los tipos para los cuales la palabra clave “es” pueden ser equivalentes a un operador de igualdad en Python

Para algunos tipos en Python, el operador is parece ser equivalente al operador == . Por ejemplo: >>> 1 is 1 True >>> “a spoon” is “a spoon” True >>> (1 == 1) is (2 == 2) True Sin embargo, este no es siempre el caso: >>> [] == [] True >>> [] is [] […]

¿Cómo regalar el objeto a la recogida de basura de python?

Hay varios subprocesos en la recolección de basura de Python en SO, y después de leer unos cinco, más algunos documentos en línea, todavía no estoy seguro de cómo funciona la recolección de basura y cómo debo administrar los objetos que no estoy usando. De hecho, en algún lugar donde leo uno no debería hacer […]

¿Es esto un error? Las variables son referencias idénticas a la misma cadena en este ejemplo (Python)

Esto es para Python 2.6. No pude entender por qué ayb son idénticos: >>> a = “some_string” >>> b = “some_string” >>> a is b True Pero si hay un espacio en la cadena, no lo son: >>> a = “some string” >>> b = “some string” >>> a is b False Si este es […]

En Python, ¿cuándo son dos objetos iguales?

Parece que 2 is 2 y 3 is 3 siempre será cierto en python, y en general, cualquier referencia a un entero es igual a cualquier otra referencia al mismo entero. Lo mismo sucede con None (es decir, None is None ). Sé que esto no le sucede a los tipos definidos por el usuario, […]